#include<bits/stdc++.h>
using namespace std;
int n;
int nums[20000];
int pos = 1;
void compute(int num) {
int pre = 0;
int i = 1;
for (; i <= pos; i++) {
int curr = (nums[i] * num + pre) % 10;
pre = (nums[i] * num + pre) / 10;
nums[i] = curr;
}
while (pre > 0) {
nums[i] = pre % 10;
pre /= 10;
i++;
}
pos = i - 1;
}
int main() {
cin >> n;
nums[1] = 1;
vector<int>memo;
int curr = 2;
while (n > 0) {
memo.push_back(curr);
n -= curr;
curr++;
}
memo[abs(n) - 2] = 1;
for (int i = 0; i <= memo.size() - 1; i++) {
if (memo[i] != 1) {
compute(memo[i]);
cout<<memo[i]<<" ";
}
}
cout<<endl;
for (int i = pos; i >= 1; i--) {
cout<<nums[i];
}
}