#include<bits/stdc++.h>
#include <cmath>
#include <complex>
using namespace std;
#define ll long long
#define fast ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define dcm(a) setprecision(a)<<fixed
ll const md= 1000000007;
#define clr(memo, a) memset(memo,a,sizeof(memo))
#define PI acos(-1)
typedef complex<double> point;
double EPS=1e-9;
int dcmp(double x, double y) { return fabs(x-y) <= EPS ? 0 : x < y ? -1 : 1; }
#define X real()
#define Y imag()
#define angle(a) (atan2((a).imag(), (a).real()))
#define vec(a,b) ((b)-(a))
#define same(p1,p2) (dp(vec(p1,p2),vec(p1,p2)) < EPS)
#define dp(a,b) ( (conj(a)*(b)).real() ) // a*b cos(T), if zero -> prep
#define cp(a,b) ( (conj(a)*(b)).imag() ) // a*b sin(T), if zero -> parllel
#define length(a) (hypot((a).imag(), (a).real()))
#define normalize(a) (a)/length(a)
#define rotateO(p,ang) ((p)*exp(point(0,ang)))
#define rotateA(p,ang,about) (rotateO(vec(about,p),ang)+about)
#define reflectO(v,m) (conj((v)/(m))*(m))
void solve(){
ll n;
cin>>n;
vector<ll> ans;
for(ll i=1;;i++){
if(n-i<=i){
ans.push_back(n);
break;
}
ans.push_back(i);
n-=i;
}
cout<<ans.size()<<endl;
for(ll x:ans)
cout<<x<<" ";
cout<<endl;
}
int main(){
fast;
int t=1;
//cin>>t;
while(t--)
solve();
return 0;
}
Copy