#include<bits/stdc++.h>
using namespace std;
deque<int> ans(1, 0), dq(1, 1);
int n;
deque<int> operator+(deque<int> dq1, deque<int> dq2){
if(dq1.size() < dq2.size())
swap(dq1, dq2);
reverse(dq1.begin(), dq1.end());
reverse(dq2.begin(), dq2.end());
dq2.resize(dq1.size());
dq1.push_back(0);
for(size_t i = 0; i < dq2.size(); ++i){
dq1[i] += dq2[i];
if(dq1[i] > 9){
dq1[i] -= 10;
++dq1[i + 1];
}
}reverse(dq1.begin(), dq1.end());
while(dq1[0] == 0)
dq1.pop_front();
return dq1;
}deque<int> operator/(deque<int> dq, int k){
for(size_t i = 0; i < dq.size() - 1; ++i){
dq[i + 1] += dq[i] % k * 10;
dq[i] /= k;
}dq[dq.size() - 1] /= k;
while(dq[0] == 0)
dq.pop_front();
return dq;
}int main(){
cin >> n;
cout << "2.";
dq.resize(n + 6);
for(int i = 2; i <= 100000; ++i){
if(dq.size() < log(i) / log(10) + 1)
break;
dq = dq / i;
if(dq.empty())
break;
ans = ans + dq;
}for(int i = 0; i < n; ++i){
if(i % 10 == 0)
cout << ' ';
if(i % 50 == 0)
cout << '\n';
cout << ans[i];
}return 0;
}