#include <bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
using namespace std;
typedef long long ll;
typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> indexedset;
//int randi = (mt19937(null));
ll stepen(ll x){
    ll res = 1;
    while(x % 2 == 0){
        x /= 2;
        res++;
    }
    return res;
}
vector<pair<int, int>> ZapisiTacke(int n){
    vector<pair<int, int>>res(n + 1);
    ll dva = 1;
    ll brst = 1;
    while(dva < n){
        brst++;
        dva*=2;
    }
    ll velicina = 1000;
    ll dole = dva / 2;
    ll brojac;
    brojac = (dole/2)*(-1000);
    res[n] = make_pair(0, -100000008);
    for(int j = dole; j < n; j += 1000){
        res[dole + j] = make_pair(brojac, 0);
        brojac += 1000;
    }
    for(int i = dole; i < n; i++){
        ll naj = stepen(i - dole + 1);
        res[i / (pow(2, naj + 1))] = make_pair((res[i].first / 2), naj*velicina);
    }
    for(auto x : res){
        cout << x.first << " " << x.second << "   ";
    }
    cout << endl;
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin >> n;
    ZapisiTacke(n);
}