#include <cstdio>
using namespace std;
int main()
{
FILE *fin=fopen ("tije.in","r");
FILE *fout=fopen ("tije.out","w");
int n,x,i,j;
fscanf (fin,"%d",&n);
for (x=1;x<n;x++){ /// ai x-1 stive deja facute
/// solve pt x;
for (i=1;i<=n-1;i++)
fprintf (fout,"%d %d\n",x,n+1);
for (i=1;i<=x;i++)
fprintf (fout,"%d %d\n",x+1,x);
for (i=x+2;i<=n;i++){ /// transfer prefixul x-1..1 pe stiva x+1 si move ec in x
for (j=1;j<=x-1;j++)
fprintf (fout,"%d %d\n",i,x+1);
fprintf (fout,"%d %d\n",i,x);
for (j=1;j<=x-1;j++)
fprintf (fout,"%d %d\n",x+1,i);
}
for (i=x+2;i<=n;i++)
fprintf (fout,"%d %d\n",n+1,i); /// pui cate un x pe fiecare
/// cum faci sa modifici tija x+1
fprintf (fout,"%d %d\n",n+1,x+1); /// muti x ul
for (i=1;i<=x-1;i++)
fprintf (fout,"%d %d\n",x,x+1);
for (i=1;i<=x-1;i++)
fprintf (fout,"%d %d\n",n+1,x);
for (i=1;i<=x-1;i++)
fprintf (fout,"%d %d\n",x+1,n+1);
for (i=1;i<=x-1;i++)
fprintf (fout,"%d %d\n",x,x+1);
for (i=1;i<=x-1;i++)
fprintf (fout,"%d %d\n",n+1,x);
//for (i=1;i<=x-1;i++)
// fprintf (fout,"%d %d\n",x+1,n+1);
}
return 0;
}