#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 200;
struct node
{
int x,y;
double v;
bool operator < (const node & W) const
{
return v<W.v;
}
}a[N];
int pos;
int gcd(int a,int b)
{
return b==0?a:gcd(b,a%b);
}
int main()
{
int n;
cin>>n;
if(n==1)
{
cout<<"0/1"<<endl;
cout<<"1/1"<<endl;
return 0;
}
for(int i = 0 ; i < n ; i ++)
for(int j = 1 ; j <= n ; j ++)
{
if(i>j) continue;
if(gcd(i,j)!=1) continue;
else
{
a[++pos]={i,j,(double)i/j};
}
}
sort(a+1,a+pos+1);
for(int i = 1 ; i <= pos ; i ++)
{
cout<<a[i].x<<"/"<<a[i].y<<endl;
}
}