#include <bits/stdc++.h>
using namespace std;
int main() {
  {
    long long n;
    long long h;
    scanf("%lld", &(h));
    scanf("%lld", &(n));
    h++;
    n = n + (pow(2, h - 1) - 1);
    char arr[1000];
    int l = 0;
    while (n > 1) {
      if (n % 2 == 0) {
        arr[l++] = 'L';
      } else {
        arr[l++] = 'R';
      }
      n /= 2;
    }
    long long ans = 0;
    char tmp = 'L';
    long long x = h;
    for (int i = l - 1; i >= 0; i--) {
      if (tmp == 'L') {
        if (arr[i] == 'L') {
          ans += 1;
          tmp = 'R';
        } else {
          ans += pow(2, x - 1);
          tmp = 'L';
        }
      } else {
        if (arr[i] == 'R') {
          ans += 1;
          tmp = 'L';
        } else {
          ans += pow(2, x - 1);
          tmp = 'R';
        }
      }
      x--;
    }
    printf("%lld", (ans));
    printf("\n");
  }
  return 0;
}
