#include <bits/stdc++.h>
using namespace std;
int a[300];
double dp[300][300];
int sum[300];
int cnt = 0;
int n;
void dfs(int deep, int x, double y, int time1) {
  if (deep > n || x > deep) return;
  if (time1 * y + dp[deep][x] >= 1) {
    if (dp[deep][x] != 1) cnt++;
    dfs(deep + 1, x, y / 2, time1 - (1 - dp[deep][x]) / y);
    dfs(deep + 1, x + 1, y / 2, time1 - (1 - dp[deep][x]) / y);
    dp[deep][x] = 1;
  } else {
    dp[deep][x] += time1 * y;
    return;
  }
}
int main() {
  int b, c, t;
  while (scanf("%d %d", &n, &t) != EOF) {
    memset(dp, 0, sizeof(dp));
    cnt = 0;
    dfs(1, 1, 1, t);
    printf("%d\n", cnt);
  }
}
