Let's do this one move at a time!
It's obviously Black's move, because he is in check.
White's bishop is giving check. It can't have just moved to a1 as otherwise Black would have been in check. So White's last move must have been uncovering the check from the bishop.
The piece which moved to give discovered check can't have been one of the queens, because they give check along diagonals as well or the bishop on h7, because that's a white-squared bishop, or the king, because that's too far away from the a1-e5 diagonal. So if must have been the pawn. So White's last move was moving that pawn.
The pawn can't have come from e5, because Black would have been in check, so it must have taken something on e6 (i.e. it started on d5 or f5).
The thing that the pawn took must have been a pawn on e5 (en passant), otherwise Black would have been in check from the a1 bishop.
So White's last move was either d5xe6 e.p. or f5xe6 e.p. Let's leave which one it was as undecided for now.
Black's move before was clearly e7-e5.
White's move before that must also have been a discovered check for the same reason as his last move was. The only thing which could have moved to give discovered check is a pawn on d4. So that clears up whether it was d5xe6 or f5xe6.
So, the last few moves were: