
Elena는 정육면체 모양의 블록이 가득 든 상자를 발견하고, 가능한 한 높은 피라미드를 쌓기로 했다. 블록이 남으면 피라미드를 더 쌓는다.
피라미드는 안정적이고 아름다워야 한다. 어떤 피라미드의 맨 아래 층(바닥)이 $k$개의 블록으로 이루어지면, 바로 위층은 반드시 $k-1$개의 블록으로 이루어져야 하고, 이런 식으로 한 층씩 올라간다. 완성된 피라미드는 정확히 $k$개의 층을 가지며, 맨 위층에는 항상 블록이 $1$개 있다. 따라서 높이가 $k$인 피라미드는 $1 + 2 + \cdots + k = \frac{k(k+1)}{2}$개의 블록을 사용한다.
블록의 개수가 주어질 때, 남아 있는 블록으로 가능한 한 높은 피라미드를 반복해서 쌓는다. 즉, 가진 블록으로 가장 높은 피라미드를 하나 쌓고, 남은 블록으로 다시 가장 높은 피라미드를 쌓는 과정을 블록이 하나도 남지 않을 때까지 반복한다. 이렇게 쌓을 수 있는 피라미드들의 높이를 구하여라.
가진 블록의 개수를 나타내는 정수 $N$ 하나가 주어진다.
쌓을 수 있는 피라미드들의 높이를 각 줄에 하나씩 출력한다. 높이는 가장 높은 것부터 가장 낮은 것 순으로 출력한다.