#include <bits/stdc++.h>
using namespace std;
template <typename T>
T gcd(T a, T b) {
  return (b > 0) ? gcd(b, a % b) : a;
}
template <typename T>
T lcm(T a, T b) {
  return (a * b == 0) ? 0 : (a * b) / gcd(a, b);
}
void solution() {
  int candy;
  cin >> candy;
  int x = 0;
  for (; pow(x, 2) + x <= candy * 2; ++x) {
  }
  --x;
  cout << x << endl;
  int give = 1;
  while (x--) {
    if (x == 0) {
      cout << candy << " ";
      return;
    }
    candy -= give;
    cout << give << " ";
    ++give;
  }
}
int main() {
  ios::sync_with_stdio(false), cin.tie(0);
  int t = 1;
  while (t--) {
    solution();
  }
}
