what is correct ?

They were suprised at/by their good fortune.

I was suprised by/at his reaction to the problem.

Could you please clarify for me when do I say I was suprised by/at... and give some other examples where both phrases are used.

And if had made any mistake in this post please correct me.

Thanks a lot.