US federal budget posts $215B surplus in April, topping expectations