<image>

Input

The input contains two integers row, col (0 ≤ row, col ≤ 63), separated by a single space.

Output

Output "IN" or "OUT".

Examples

Input


0 0


Output


OUT


Input


27 0


Output


IN


Input


0 27


Output


OUT


Input


27 27


Output


IN
#include <bits/stdc++.h>
using namespace std;
template <typename T, typename U>
std::istream& operator>>(std::istream& i, pair<T, U>& p) {
  i >> p.first >> p.second;
  return i;
}
template <typename T>
std::istream& operator>>(std::istream& i, vector<T>& t) {
  for (auto& v : t) {
    i >> v;
  }
  return i;
}
template <typename T, typename U>
std::ostream& operator<<(std::ostream& o, const pair<T, U>& p) {
  o << p.first << ' ' << p.second;
  return o;
}
template <typename T>
std::ostream& operator<<(std::ostream& o, const vector<T>& t) {
  if (t.empty()) o << '\n';
  for (size_t i = 0; i < t.size(); ++i) {
    o << t[i] << " \n"[i == t.size() - 1];
  }
  return o;
}
template <typename T>
using minheap = priority_queue<T, vector<T>, greater<T>>;
template <typename T>
using maxheap = priority_queue<T, vector<T>, less<T>>;
unsigned int logceil(long long first) {
  return first ? 8 * sizeof(long long) - __builtin_clzll(first) : 0;
}
namespace std {
template <typename T, typename U>
struct hash<pair<T, U>> {
  hash<T> t;
  hash<U> u;
  size_t operator()(const pair<T, U>& p) const {
    return t(p.first) ^ (u(p.second) << 7);
  }
};
}  // namespace std
template <typename T, typename F>
T bsh(T l, T h, const F& f) {
  T r = -1, m;
  while (l <= h) {
    m = (l + h) / 2;
    if (f(m)) {
      l = m + 1;
      r = m;
    } else {
      h = m - 1;
    }
  }
  return r;
}
template <typename F>
double bshd(double l, double h, const F& f, double p = 1e-9) {
  unsigned int r = 3 + (unsigned int)log2((h - l) / p);
  while (r--) {
    double m = (l + h) / 2;
    if (f(m)) {
      l = m;
    } else {
      h = m;
    }
  }
  return (l + h) / 2;
}
template <typename T, typename F>
T bsl(T l, T h, const F& f) {
  T r = -1, m;
  while (l <= h) {
    m = (l + h) / 2;
    if (f(m)) {
      h = m - 1;
      r = m;
    } else {
      l = m + 1;
    }
  }
  return r;
}
template <typename F>
double bsld(double l, double h, const F& f, double p = 1e-9) {
  unsigned int r = 3 + (unsigned int)log2((h - l) / p);
  while (r--) {
    double m = (l + h) / 2;
    if (f(m)) {
      h = m;
    } else {
      l = m;
    }
  }
  return (l + h) / 2;
}
template <typename T>
T gcd(T a, T b) {
  if (a < b) swap(a, b);
  return b ? gcd(b, a % b) : a;
}
template <typename T>
class vector2 : public vector<vector<T>> {
 public:
  vector2() {}
  vector2(size_t a, size_t b, T t = T())
      : vector<vector<T>>(a, vector<T>(b, t)) {}
};
template <typename T>
class vector3 : public vector<vector2<T>> {
 public:
  vector3() {}
  vector3(size_t a, size_t b, size_t c, T t = T())
      : vector<vector2<T>>(a, vector2<T>(b, c, t)) {}
};
template <typename T>
class vector4 : public vector<vector3<T>> {
 public:
  vector4() {}
  vector4(size_t a, size_t b, size_t c, size_t d, T t = T())
      : vector<vector3<T>>(a, vector3<T>(b, c, d, t)) {}
};
template <typename T>
class vector5 : public vector<vector4<T>> {
 public:
  vector5() {}
  vector5(size_t a, size_t b, size_t c, size_t d, size_t e, T t = T())
      : vector<vector4<T>>(a, vector4<T>(b, c, d, e, t)) {}
};
vector<string> S = {
    "2222222222222222222222222212121111112122222222222222222222222222",
    "2222222222222222222222121112121212212111112222222222222222222222",
    "2222222222222222222211121222122211212222122122222222222222222222",
    "2222222222222222211112121211111222211112121112122222222222222222",
    "2222222222222222112222221212222211112222121212112222222222222222",
    "2222222222222212211211111211121112122121122212212122222222222222",
    "2222222222222111221221222222121222111122112112112112222222222222",
    "2222222222211111121121121112111211122221122122122211122222222222",
    "2222222222111111111111222212222212221211221121121221112222222222",
    "2222222221111111111111111111121111111221111221111111111222222222",
    "2222222211111111111111111111111111111111111111111111111122222222",
    "2222222111111111111111111111111111111111111111111111111112222222",
    "2222222111111111111111111111111111111111111111111111111112222222",
    "2222221111111111111111111111111111111111111111111111111111222222",
    "2222211111111111111111111111111111111111111111111111111111122222",
    "2222211111111111111111111111111111111111111111111111111111122222",
    "2222111111111111111111111111111111111111111111111111111111112222",
    "2221111111111111111111111111111111111111111111111111111111111222",
    "2222211111111111111111111111111111111111111111111111111111111222",
    "2222222111111111111222122111111111111112221212111111111111122222",
    "2211222221111111112212221111111111111112122222221111111122222222",
    "2211112222211111222112122211111111111111121121122121122222221122",
    "2111111122222122211122111221111111111121221222112222222221111112",
    "2111111111222221221221121122211111111121121111122122221111111112",
    "2111111111111211211122222111221111111222122122221112111111111112",
    "2111111111222221222111211122211111111212111112122212212111111112",
    "1111111111112111212212212221221111112212212222112111222111111111",
    "1111111111122212212112111211121111212111211112211122212111111111",
    "1111111111121111112111122221221212222121221211112221112111111111",
    "1111111111122222122122111211122212121121121221222122122111111111",
    "1111111111112112111121121112221211122222111121211111121111111111",
    "1111111111122211122122122211121221112111122121112221222111111111",
    "1111111111111222221121112112111211222221221121122122212111111111",
    "1111111111111121121222212122221212212121121222112112111111111111",
    "1111111111112222111121212121211112112122121112211122211111111111",
    "1111111111111212212221112221111222122112222122112221111111111111",
    "1111111111111111222111222121121121121122121112122122111111111111",
    "1111111111111111112221211111122222111111122212221111111111111111",
    "2111111111111111122122221111121211111111111222122111111111111112",
    "2111111111111111111111111111111222211111111111111111111111111112",
    "2111111111111111111111111111212212111111111111111111111111111112",
    "2111111111111111111111111121222111111111111111111111111111111112",
    "2211111111111111111111111122212221111111111111111111111111111122",
    "2211111112211111111111111111112111111111111111111111111111111122",
    "2221111111212111111111111111122211111111111111111111121111111222",
    "2221111111222122211111111111221211111111111211111212222111111222",
    "2221111111212121221212221121211221212212112221122222121111111222",
    "2222111111112221122222122222221122211222222121221112111111112222",
    "2222211111112122111121111211122111222211121111121211111111122222",
    "2222211111111112122122122212111121112112122222122211111111122222",
    "2222221111111122221121121222212221212222111212221111111111222222",
    "2222222111111111211222111112112121222121122211111111111112222222",
    "2222222111111111221112212122211122212111221222111111111112222222",
    "2222222211111111122211112221112112111121111211111111111122222222",
    "2222222221111111112112222121222222122221211111111111111222222222",
    "2222222222111111111111212111121121121211221111111111112222222222",
    "2222222222211111111111112222111122221222211111111111122222222222",
    "2222222222222111111111111111111112111111111111111112222222222222",
    "2222222222222211111111111111111111111111111111111122222222222222",
    "2222222222222222111111111111111111111111111111112222222222222222",
    "2222222222222222211111111111111111111111111111122222222222222222",
    "2222222222222222222211111111111111111111111122222222222222222222",
    "2222222222222222222222111111111111111111112222222222222222222222",
    "2222222222222222222222222211111111111122222222222222222222222222"};
class EJordanSmiley {
 public:
  int R, C;
  void bfs(int r, int c) {
    if (r < 0 || r >= R || c < 0 || c >= C || S[r][c] != '1') return;
    S[r][c] = '2';
    bfs(r - 1, c);
    bfs(r + 1, c);
    bfs(r, c - 1);
    bfs(r, c + 1);
  }
  void solve(istream& cin, ostream& cout) {
    int A, B;
    cin >> A >> B;
    if (S[A][B] == '2') {
      cout << "OUT\n";
    } else {
      cout << "IN\n";
    }
  }
};
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  EJordanSmiley solver;
  std::istream& in(std::cin);
  std::ostream& out(std::cout);
  solver.solve(in, out);
  return 0;
}
