DP still needs to work harder...
Start by enumerating from one point of a dice to 150
Then enumerate from two points to 150
...
Then add the second dice, add the data of one point with the data of the first dice and enumerate
Then add the data of two points with the data of the first dice (minus two points) and enumerate
...
AC
//====================================================================||
// ||
// ||
// Author : GCA ||
// 6AE7EE02212D47DAD26C32C0FE829006 ||
//====================================================================||
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <climits>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <cctype>
#include <utility>
using namespace std;
#ifdef ONLINE_JUDGE
#define ll "%lld"
#else
#define ll "%I64d"
#endif
typedef unsigned int uint;
typedef long long int Int;
#define Set(a,s) memset(a,s,sizeof(a))
#define Write(w) freopen(w,"w",stdout)
#define Read(r) freopen(r,"r",stdin)
#define Pln() printf("\n")
#define I_de(x,n)for(int i=0;i<n;i++)printf("%d ",x[i]);Pln()
#define De(x)printf(#x"%d\n",x)
#define For(i,x)for(int i=0;i<x;i++)
#define CON(x,y) x##y
#define Pmz(dp,nx,ny)for(int hty=0;hty<ny;hty++){for(int htx=0;htx<nx;htx++){\
printf("%d ",dp[htx][hty]);}Pln();}
#define M 55
#define PII pair<int,int>
#define PB push_back
#define oo INT_MAX
#define Set_oo 0x3f
#define Is_debug true
#define debug(...) if(Is_debug)printf("DEBUG: "),printf(__VA_ARGS__)
#define FOR(it,c) for(__typeof((c).begin()) it=(c).begin();it!=(c).end();it++)
#define eps 1e-6
bool xdy(double x,double y){return x>y+eps;}
bool xddy(double x,double y){return x>y-eps;}
bool xcy(double x,double y){return x<y-eps;}
bool xcdy(double x,double y){return x<y+eps;}
int min3(int x,int y,int z){
int tmp=min(x,y);
return min(tmp,z);
}
int max3(int x,int y,int z){
int tmp=max(x,y);
return max(tmp,z);
}
Int dp[100][200];
int n,x;
Int all;
Int ans;
void pre(){
Set(dp,0);
for(int i=1;i<=6;i++){
for(int j=i+1;j<150;j++){
dp[1][j]++;
}
}
for(int i=2;i<25;i++){
for(int j=1;j<=6;j++){
for(int k=j+1;k<150;k++){
dp[i][k]+=dp[i-1][k-j];
}
}
}
}
Int gcd(Int x,Int y){
if(x==0)return y;
else return gcd(y%x,x);
}
int main() {
ios_base::sync_with_stdio(0);
pre();
while(~scanf("%d%d",&n,&x)&&n+x){
all=1;
// debug("%lld\n",dp[n][x]);
for(int i=0;i<n;i++)all*=6;
ans=all-dp[n][x];
Int c=gcd(all,ans);
all/=c;
ans/=c;
if(ans==0)printf("0\n");
else if(ans==all)printf("1\n");
else printf("%lld/%lld\n",ans,all);
}
}