Flush is sometimes wrong because of my bad handling of edge cases. Too tired to fix at the moment. Let me know if there's any other bugs
CONTROLS: G , H