#include <bits/stdc++.h>
using namespace std;
int a, b, x, y, cnt;
void RUL(int);
void DLU(int);
void LDR(int);
void URD(int);
void disp_res(int x, int y) {
  printf("%d %d\n", x, y);
  exit(0);
}
void RUL(int n) {
  if (cnt == b) {
    disp_res(x, y);
  };
  if (n <= 0) return;
  URD(n - 1);
  x += 1;
  cnt++;
  RUL(n - 1);
  y += 1;
  cnt++;
  RUL(n - 1);
  x -= 1;
  cnt++;
  DLU(n - 1);
}
void DLU(int n) {
  if (cnt == b) {
    disp_res(x, y);
  };
  if (n <= 0) return;
  LDR(n - 1);
  y -= 1;
  cnt++;
  DLU(n - 1);
  x -= 1;
  cnt++;
  DLU(n - 1);
  y += 1;
  cnt++;
  RUL(n - 1);
}
void LDR(int n) {
  if (cnt == b) {
    disp_res(x, y);
  };
  if (n <= 0) return;
  DLU(n - 1);
  x -= 1;
  cnt++;
  LDR(n - 1);
  y -= 1;
  cnt++;
  LDR(n - 1);
  x += 1;
  cnt++;
  URD(n - 1);
}
void URD(int n) {
  if (cnt == b) {
    disp_res(x, y);
  };
  if (n <= 0) return;
  RUL(n - 1);
  y += 1;
  cnt++;
  URD(n - 1);
  x += 1;
  cnt++;
  URD(n - 1);
  y -= 1;
  cnt++;
  LDR(n - 1);
}
int main() {
  cnt = 0;
  x = 0, y = 0;
  scanf("%d %d", &a, &b);
  URD(a);
  return 0;
}
