https://codeforces.com/contest/1859/submission/218562954