#include<stdio.h>
struct node{
int x,y;float z;
}a[100010],t;
int hz(int x,int y){
if(!y)return 0;
for(int i=2;i<=(x<y?x:y);i++)
if(x%i==0&&y%i==0)return 0;
return 1;
}int main(){
int i,j,m=0,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
for(j=0;j<=i;j++)
if(hz(i,j)){
a[++m].x=j;a[m].y=i;
a[m].z=j*1.0/i;
}for(i=1;i<m;i++)
for(j=i+1;j<=m;j++)
if(a[i].z>a[j].z){
t=a[i];a[i]=a[j];a[j]=t;
}printf("0/1\n");
for(i=1;i<=m;i++)
printf("%d/%d\n",a[i].x,a[i].y);
return 0;
}
struct node{
int x,y;float z;
}a[100010],t;
int hz(int x,int y){
if(!y)return 0;
for(int i=2;i<=(x<y?x:y);i++)
if(x%i==0&&y%i==0)return 0;
return 1;
}int main(){
int i,j,m=0,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
for(j=0;j<=i;j++)
if(hz(i,j)){
a[++m].x=j;a[m].y=i;
a[m].z=j*1.0/i;
}for(i=1;i<m;i++)
for(j=i+1;j<=m;j++)
if(a[i].z>a[j].z){
t=a[i];a[i]=a[j];a[j]=t;
}printf("0/1\n");
for(i=1;i<=m;i++)
printf("%d/%d\n",a[i].x,a[i].y);
return 0;
}