#include<bits/stdc++.h>
using namespace std;
long long a, b = 1, c = 0;
int y[20001], m = 20000;
void nb(int x) {
y[0] = 1;
for (int i = 2; i <= x; i++) {
for (int k = 0; k < 20001; k++)
y[k] *= i;
for (int k = 0; k < 20001; k++)
if (y[k] > 9) {
y[k + 1] += y[k] / 10;
y[k] %= 10;
}
}
}
int main() {
cin >> a;
if (a == 3) {
cout << 1 << " " << 2 << endl << 2;
return 0;
}if (a == 4) {
cout << 1 << " " << 3 << endl << 3;
return 0;
}
if (a > 4) {
while (c < a) {
b++;
c += b;
}
if (c == a) {
for (int i = 2; i <= b; i++)
cout << i << " ";
cout << endl;
nb(b);
for (m; m >= 0; m--)
cout << y[m];
}if (c - a == 1) {
y[0] = 1;
for (int i = 3; i <= b + 1; i++) {
if (i == b) continue;
cout << i << " ";
for (int k = 0; k < 20001; k++)
y[k] *= i;
for (int k = 0; k < 20001; k++)
if (y[k] > 9) {
y[k + 1] += y[k] / 10;
y[k] %= 10;
}
}cout << endl;
for (m; m >= 0; m--)
cout << y[m];
}if (c > a + 1) {
long long p = c - a;
y[0] = 1;
for (int i = 2; i <= b; i++) {
if (i == p) continue;
cout << i << " ";
for (int k = 0; k < 20001; k++)
y[k] *= i;
for (int k = 0; k < 20001; k++)
if (y[k] > 9) {
y[k + 1] += y[k] / 10;
y[k] %= 10;
}
}cout << endl;
while (y[m] == 0 && m > 0) m--;
for (m; m >= 0; m--)
cout << y[m];
}
}
return 0;
}