Here is the problem link https://codeforces.net/contest/534/problem/D Basically, the problem boils down to finding a correct rearrangement of some numbers such that each next number is the previous number + 1 — 3m where m is some non-negative integer, and you have to start with 0. The solution is to always pick the biggest number possible, (so if you are currently on x, you try x + 1, then x — 2, then x — 5, etc...). Why does this solution work?