#include <bits/stdc++.h>
using namespace std;
const int N = 100;
const long long oo = 1000;
double EPS = (double)(1e-9);
int n, T;
vector<int> ed[N];
void Init() {
  int j = 1;
  for (int i = 2; i <= n; i++) {
    int k = (i * (i - 1)) / 2 + 1;
    ed[j].push_back(k);
    k++;
    while (k < (i * (i + 1)) / 2) {
      ed[j].push_back(k);
      ed[++j].push_back(k);
      k++;
    }
    ed[j].push_back(k);
    j++;
  }
}
double F[100];
void flow(int u, double val) {
  F[u] += val;
  if ((F[u] - 1.0) >= EPS) {
    double kk = F[u] - 1.0;
    F[u] -= kk;
    for (int i = 0; i < ed[u].size(); i++) flow(ed[u][i], val / 2);
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin >> n >> T;
  int cup = (n * (n + 1)) / 2;
  Init();
  for (int t = 1; t <= T; t++) flow(1, 1.0);
  int cnt = 0;
  for (int i = 1; i <= cup; i++)
    if (abs(F[i] - 1.0) <= EPS) cnt++;
  cout << cnt;
}
