동현이는 돌 무더기 하나를 가지고 게임을 한다. 처음에 돌 무더기에는 개의 돌이 들어 있다.
동현이는 모든 돌 무더기에 돌이 하나씩만 남을 때까지 다음 연산을 반복한다.
- 돌이 개 이상 들어 있는 무더기 하나를 고른다.
- 고른 무더기에 들어 있던 돌을 두 무더기로 나눈다. 두 무더기에는 각각 돌이 하나 이상 들어 있어야 한다.
- 새로 만든 두 무더기에 들어 있는 돌의 개수를 각각 라 할 때, 점수에 를 더한다.
게임을 시작할 때 점수는 이다. 가능한 모든 연산 순서를 고려했을 때 얻을 수 있는 최종 점수를 모두 구하여라.
만들 수 있는 최종 점수의 종류는 가지 이하임이 보장된다.
Input
입력은 다음과 같은 형식으로 주어진다.
Output
첫째 줄에 만들 수 있는 최종 점수의 종류의 수 를 출력한다.
그 다음 개의 줄에 걸쳐, 만들 수 있는 최종 점수를 하나씩 출력한다. 출력한 점수들은 서로 달라야 하며, 출력 순서는 자유롭다.
각 점수는 부호가 없는 십진 정수로 출력해야 한다. 가능한 최종 점수를 빠뜨리거나, 만들 수 없는 점수를 출력하면 오답으로 판정된다.
Constraints
- .
- 만들 수 있는 최종 점수의 종류는 가지 이하이다.
Subtasks
Samples
입력
3
출력
1
3
먼저 돌 개가 든 무더기를 돌 개와 개가 든 무더기로 나누면 점을 얻는다. 이후 돌 개가 든 무더기를 돌 개씩 든 두 무더기로 나누면 점을 더 얻으므로, 최종 점수는 이다.