How does white mate in two? [FEN "7Q/p1p1b1B1/6r1/2p3kp/4Bp1q/7P/PPP2PP1/6K1 w - - 0 1"]


(source)

In this problem, it’s White to move and mate in two. What is the solution?
I would not normally answer this, but the real answer was deleted by its author for some reason, and is hidden. I also think that the original -3 for the question was more due to the original poster not being a native English speaker so I edited that too.

This is from the game Diaz Carias-Cordovil, 1966 Olympiad. Black resigned after 30.Bh6+, which is the first move of the solution. After Black’s forced Rxh6, White will play Qe5#.

 [Event "Olympiad-17 Final C"]
 [Site "Havana"]
 [Date "1966.11.13"]
 [Round "9"]
 [White "Diaz Carias, Salvador"]
 [Black "Cordovil, Joao Maria"]
 [Result "1-0"]
 [ECO "C50"]
 [StartPly "58"]
 [EventDate "1966.11.04"]
 [EventType "team-tourn"]
 [EventRounds "13"]
 [EventCountry "CUB"]
 [SourceTitle "MCD"]
 [WhiteTeam "Venezuela"]
 [BlackTeam "Portugal"]
 [WhiteTeamCountry "VEN"]
 [BlackTeamCountry "POR"]
 [FEN ""]

 1. e4 e5 2. Nf3 Nc6 3. Bb5 Be7 4. d4 d6 5. h3 exd4 6. Nxd4 Nf6 7. Nc3 O-O 8. O-O Nxe4 9. Nxc6 bxc6 10. Nxe4 d5 11. Bd3 dxe4 12. Bxe4 Rb8 13. Qf3 c5 14. Rd1 Bd6 15. Bd2 Qh4 16. Bc3 f5 17. Bd5+ Kh8 18. Re1 f4 19. Re2 h5 20. Rae1 Bg4 21. Re6 Bxe6 22. Rxe6 Rf6 23. Qe4 Rbf8 24. Rxf6 Rxf6 25. Qe8+ Kh7 26. Qg8+ Kh6 27. Be4 Rg6 28. Qh8+ Kg5 29. Bxg7 Be7 30. Bh6+ (30. Bh6+ Rxh6 31. Qe5#) 1-0