public class Euler181 {
    public static void main(String[] args) {
        int B = 40, W = 60;
        long[][] dp = new long[B + 1][W + 1];
        dp[0][0] = 1;
        for (int tb = 0; tb <= B; tb++)
            for (int tw = 0; tw <= W; tw++) {
                if (tb == 0 && tw == 0)
                    continue;
                for (int b = B; b >= 0; b--)
                    for (int w = W; w >= 0; w--) {
                        long base = dp[b][w];
                        if (base == 0)
                            continue;
                        int mr;
                        if (tb == 0)
                            mr = tw == 0 ? 0 : (W - w) / tw;
                        else if (tw == 0)
                            mr = (B - b) / tb;
                        else
                            mr = Math.min((B - b) / tb, (W - w) / tw);
                        for (int k = 1; k <= mr; k++)
                            dp[b + k * tb][w + k * tw] += base;
                    }
            }
        System.out.println(dp[B][W]);
    }
}
