#include <cstdio>
#include <cmath>
#include <iostream>
#include <set>
#include <algorithm>
#include <vector>
#include <map>
#include <cassert>
#include <string>
#include <cstring>
#include <queue>

using namespace std;

#define rep(i,a,b) for(int i = a; i < b; i++)
#define S(x) scanf("%d",&x)
#define S2(x,y) scanf("%d%d",&x,&y)
#define P(x) printf("%d\n",x)
#define all(v) v.begin(),v.end()
#define FF first
#define SS second
#define pb push_back
#define mp make_pair

typedef long long int LL;
typedef pair<int, int > pii;
typedef vector<int > vi;

int main() {
  P(1);
  int n = 63;
  P(n);
  rep(i,0,n) {
    if(i < 2) printf("1 ");
    else if(i < 21) printf("0 ");
    else printf("2 ");
  }
  printf("\n");
  rep(i,1,n) {
    int x = 2 * i;
    if(x <= n) printf("%d %d\n",i,x);
    x = 2 * i + 1;
    if(x <= n) printf("%d %d\n",i,x);
  }
  return 0;
}
