#include<fstream>
#include<conio.h>
#include <stdlib.h>
using namespace std;
ifstream  fi("SXPS.inp");
ofstream  fo("SXPS.out");
struct ps
{
	int tu;
	int mau;
};
struct ps a[10000];
int m,n,h;
int  ucln(int t, int m)
         {
	       t=abs(t);m=abs(m);
	     	if(t*m==0) return 1;
	       while(t!=m)
	     	if(t>m) t-=m;
	     	else m-=t;
		    return t;}
 void rutgon(ps p)
{
          	int u;
	        u=ucln(p.tu,p.mau);
         	p.tu=p.tu/u;
	       p.mau=p.mau/u; 
}    
void sortps(ps a[],int h)
{
	int x,y;
	for(int i=1;i<=h;i++)
	{
		for(int j=i+1;j<=h;j++)
		{
			x=a[i].tu*a[j].mau;
			y=a[j].tu*a[i].mau;
			if(x>y)
			{
				swap(a[i].tu,a[j].tu);
				swap(a[i].mau,a[j].mau);
			}
		}
	}
}
void kt(ps a[],int h)
{
		int x,y;
	for(int i=1;i<=h;i++)
	{
		for(int j=i+1;j<=h;j++)
		{
			x=a[i].tu*a[j].mau;
			y=a[j].tu*a[i].mau;
			if(x==y)
			{
				a[j].tu=1;
				a[j].mau=1;
			}
		}
	}
}
void xuly(int n)
{
	int h=1;
	for(int i=1;i<=n;i++)
	{
		for(int j=0;j<=i;j++)
		{
			if((j==i)||(j==0))
			{
				if(i>1) continue;
				else
				{
					a[h].tu=j;
					a[h].mau=i;
					rutgon(a[h]);
					h++;
				}
			}
			else
			{
				a[h].tu=j;
				a[h].mau=i;
				rutgon(a[h]);
				h++;
			}
		}
	}
	kt(a,h);
	sortps(a,h);
}
int main()
{
	fi>>n>>m;
	xuly(n);
	fo<<a[m].tu<<"/"<<a[m].mau;
	fi.close();
	fo.close();
}
