#include <bits/stdc++.h>
using namespace std;
int N, M, T;
int main() {
  int i, j, k;
  vector<string> tb;
  tb.push_back("111111101010101111100101001111111");
  tb.push_back("100000100000000001010110001000001");
  tb.push_back("101110100110110000011010001011101");
  tb.push_back("101110101011001001111101001011101");
  tb.push_back("101110101100011000111100101011101");
  tb.push_back("100000101010101011010000101000001");
  tb.push_back("111111101010101010101010101111111");
  tb.push_back("000000001111101111100111100000000");
  tb.push_back("100010111100100001011110111111001");
  tb.push_back("110111001111111100100001000101100");
  tb.push_back("011100111010000101000111010001010");
  tb.push_back("011110000110001111110101100000011");
  tb.push_back("111111111111111000111001001011000");
  tb.push_back("111000010111010011010011010100100");
  tb.push_back("101010100010110010110101010000010");
  tb.push_back("101100000101010001111101000000000");
  tb.push_back("000010100011001101000111101011010");
  tb.push_back("101001001111101111000101010001110");
  tb.push_back("101101111111000100100001110001000");
  tb.push_back("000010011000100110000011010000010");
  tb.push_back("001101101001101110010010011011000");
  tb.push_back("011101011010001000111101010100110");
  tb.push_back("111010100110011101001101000001110");
  tb.push_back("110001010010101111000101111111000");
  tb.push_back("001000111011100001010110111110000");
  tb.push_back("000000001110010110100010100010110");
  tb.push_back("111111101000101111000110101011010");
  tb.push_back("100000100111010101111100100011011");
  tb.push_back("101110101001010000101000111111000");
  tb.push_back("101110100011010010010111111011010");
  tb.push_back("101110100100011011110110101110000");
  tb.push_back("100000100110011001111100111100000");
  tb.push_back("111111101101000101001101110010001");
  scanf("%d%d", &N, &M);
  printf("%c\n", tb[N][M]);
}
