n = int(input())
i = 1
ans = []
while n >= i:
ans.append(i)
n -= i
i += 1
ans[-1] += n
print(len(ans))
print(*ans)
#include<iostream>
using namespace std;
int main() {
// freopen("CHECK.INP", "r", stdin);
// freopen("CHECK.OUT", "w", stdout);
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int n;
cin >> n;
int l = 0, r = n, mid;
while (l <= r) {
mid = (l + r) >> 1;
if (n - (mid * (mid + 1) / 2) > mid)
l = mid + 1;
else r = mid - 1;
}
mid = (l + r) >> 1;
cout << mid + 1 << endl;
for (int i = 1; i <= mid; i++)
cout << i << ' ';
cout << n - ((mid + 1) * mid / 2);
return 0;
}
1097B - Petr and a Combination Lock | 92A - Chips |
1665B - Array Cloning Technique | 1665A - GCD vs LCM |
118D - Caesar's Legions | 1598A - Computer Game |
1605A - AM Deviation | 1461A - String Generation |
1585B - Array Eversion | 1661C - Water the Trees |
1459A - Red-Blue Shuffle | 1661B - Getting Zero |
1661A - Array Balancing | 1649B - Game of Ball Passing |
572A - Arrays | 1455A - Strange Functions |
1566B - MIN-MEX Cut | 678C - Joty and Chocolate |
1352E - Special Elements | 1520E - Arranging The Sheep |
1157E - Minimum Array | 1661D - Progressions Covering |
262A - Roma and Lucky Numbers | 1634B - Fortune Telling |
1358A - Park Lighting | 253C - Text Editor |
365B - The Fibonacci Segment | 75A - Life Without Zeros |
1519A - Red and Blue Beans | 466A - Cheap Travel |