using System;
using System.Collections.Generic;

class Program
{
    static void Main(string[] args)
    {
        string str;
        str = Console.ReadLine();
        string[] ss = str.Split(' ');
        int n = int.Parse(ss[0]);
        int x = int.Parse(ss[1]);
        List<List<int>> result = new List<List<int>>();
        Dictionary<int, int> state = new Dictionary<int, int>();
        GetAllPossible(n, n, x, ref state, ref result);
        int possibles = 0;
        int all = Convert.ToInt32(Math.Pow(6, n));
        for (int i = 0; i < result.Count; i++)
        {
            int sum = 0;
            result[i].ForEach(t =>
            {
                //Console.Write($"{t} ");
                sum += t;
            });
            //Console.WriteLine($"sum={sum}");
            if (sum > x)
            {
                possibles++;
            }
        }
        int g = GCD(all, possibles);
        Console.WriteLine($"{possibles / g}/{all / g}");
        Console.ReadKey();
    }
    static int GCD(int a, int b)
    {
        int i;
        for (i = a; i > 0; i--)
        {
            if ((a % i == 0) && (b % i == 0)) break;

        }
        return i;
    }
    static void GetAllPossible(int n, int k, int x, ref Dictionary<int, int> state, ref List<List<int>> result)
    {
        k--;
        //n为骰子数量
        //k为当前骰子序号
        //i为当前骰子点数
        if (k >= 0)
        {
            for (int i = 1; i <= 6; i++)
            {
                state[k] = i;
                //Console.WriteLine($"第{n + 1}个骰子点数:{i}");
                //Console.WriteLine($"state[{k}]={state[k]}");
                if (k == 0)//结束一次深入
                {
                    List<int> r = new List<int>();
                    for (int j = 0; j < n; j++)
                    {
                        r.Add(state[j]);
                    }
                    result.Add(r);
                }
                GetAllPossible(n, k, x, ref state, ref result);
            }
        }
    }
}
第3题时间过了才完成,不知道对不对。。