https://codeforces.com/blog/entry/66006
https://codeforces.com/blog/entry/66006