//#include<bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<set>
#include<vector>
#include<map>
#include<stack>
#include<queue>
#include<cmath>
#include<fstream>
#include<algorithm>
using namespace std;
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define per(i,a,n) for(int i=n;i>=a;i--)
//#define CLR(a) memset(a,sizeof(a),0)
typedef long long ll;
typedef unsigned long long ull;
const int INF = 0x3f3f3f3f;
const int maxn=1e6+10;
int main(){
int n,m;
scanf("%d", &n);
rep(i,1,n){
if(i*2-1>=n){
m=i;
break;
}
}
printf("%d ", m);
rep(i,1,m){
rep(j,i,i+1){
if(n>0){
--n;
printf("%d %d ",i,j);
}else{
break;
}
}
if(n<=0)break;
}
return 0;
}