import refinement.tableau_class .simplex simplify

structure ftableau (m n : ℕ) extends partition m n : Type :=
(to_array : array (m * (n + 1)) ℚ)
(restricted : finset (fin (m + n)))
(dead       : finset (fin n))

variables {m n : ℕ}

def fin.pair (i : fin m) (j : fin n) : fin (m * n) :=
⟨j + n * i,
  calc ((j : ℕ) + n * i) + 1 = i * n + (j + 1) : by simp [mul_comm, add_comm]
  ... ≤ i * n + n : add_le_add (le_refl _) j.2
  ... = (i + 1) * n : by simp [add_mul]
  ... ≤ m * n : mul_le_mul i.2 (le_refl _) (nat.zero_le _) (nat.zero_le _)⟩

def fin.unpair₁ (x : fin (m * n)) : fin m :=
⟨x / n, nat.div_lt_of_lt_mul (mul_comm m n ▸ x.2)⟩

def fin.unpair₂ (x : fin (m * n)) : fin n :=
⟨x % n, nat.mod_lt _ (nat.pos_of_ne_zero (λ hn0, by rw [hn0, mul_zero] at x; exact x.elim0))⟩

@[simp] lemma fin.pair_unpair (x : fin (m * n)) : fin.pair (fin.unpair₁ x) (fin.unpair₂ x) = x :=
fin.eq_of_veq (nat.mod_add_div _ _)

@[simp] lemma fin.unpair₁_pair (i : fin m) (j : fin n) : fin.unpair₁ (fin.pair i j) = i :=
fin.eq_of_veq $ show ((j : ℕ) + n * i) / n = i,
  by erw [nat.add_mul_div_left _ _ (lt_of_le_of_lt (nat.zero_le _) j.2),
    nat.div_eq_of_lt j.2, zero_add]

@[simp] lemma fin.unpair₂_pair (i : fin m) (j : fin n) : fin.unpair₂ (fin.pair i j) = j :=
fin.eq_of_veq $ show ((j : ℕ) + n * i) % n = j,
  by erw [nat.add_mul_mod_self_left, nat.mod_eq_of_lt j.2]; refl

lemma fin.pair_eq_pair {i i' : fin m} {j j' : fin n} :
  fin.pair i j = fin.pair i' j' ↔ i' = i ∧ j' = j :=
⟨λ h, ⟨by rw [← fin.unpair₁_pair i j, h, fin.unpair₁_pair],
       by rw [← fin.unpair₂_pair i j, h, fin.unpair₂_pair]⟩,
  λ ⟨hi, hj⟩, by rw [hi, hj]⟩

namespace ftableau

lemma ext {T₁ T₂ : ftableau m n} (ha : T₁.to_array = T₂.to_array)
  (hp : T₁.to_partition = T₂.to_partition)
  (hres : T₁.restricted = T₂.restricted)
  (hdead : T₁.dead = T₂.dead) : T₁ = T₂ :=
by cases T₁; cases T₂; simp * at *

def to_tableau (T : ftableau m n) : tableau m n :=
{ to_matrix := λ i j, T.to_array.read (fin.pair i j.cast_succ),
  const := λ i _, T.to_array.read (fin.pair i $ fin.last _),
  ..T }

def read (T : ftableau m n) (i : fin m) (j : fin (n + 1)) :=
T.to_array.read (fin.pair i j)

def pivot (T : ftableau m n) (r : fin m) (c : fin n) : ftableau m n :=
{ to_array := let p : ℚ := (T.read r c.cast_succ)⁻¹ in
    d_array.foreach (mk_array _ 0)
      (λ Z _, let i := fin.unpair₁ Z in let j := fin.unpair₂ Z in
        if i = r
          then if j = c.cast_succ
            then p
            else -T.read r j * p
          else if j = c.cast_succ
            then T.read i c.cast_succ * p
            else T.read i j - T.read i c.cast_succ * T.read r j * p),
  ..T.to_tableau.pivot r c }

@[simp] lemma d_array.foreach_eq_foreach {α : Type*} {n : ℕ} :
  @d_array.foreach n (λ _, α) = @array.foreach n α := rfl

lemma fin.last_ne_cast_succ (n : ℕ) (i : fin n) : fin.last n ≠ i.cast_succ :=
ne_of_gt i.2

lemma to_tableau_pivot (T : ftableau m n) (r : fin m) (c : fin n) :
  to_tableau (pivot T r c) = (to_tableau T).pivot r c :=
have hm : (to_tableau (pivot T r c)).to_matrix = ((to_tableau T).pivot r c).to_matrix,
  begin
    ext i j,
    simp [pivot, tableau.pivot, to_tableau, ftableau.read],
    congr
  end,
have hc : (to_tableau (pivot T r c)).const = ((to_tableau T).pivot r c).const,
  begin
    ext i j,
    simp [pivot, tableau.pivot, to_tableau, ftableau.read, fin.last_ne_cast_succ],
    congr
  end,
show tableau.mk _ _ _ _ _ = tableau.mk _ _ _ _ _,
by dsimp [to_tableau] at *; rw [hm, hc]; refl

def pivot_col (T : ftableau m n) (obj : fin m) : option (fin n) :=
option.cases_on
  (fin.find (λ c : fin n, T.read obj c.cast_succ ≠ 0 ∧ T.to_partition.colg c ∉ T.restricted
    ∧ c ∉ T.dead))
  (((list.fin_range n).filter (λ c : fin n, 0 < T.read obj c.cast_succ ∧ c ∉ T.dead)).argmin
    T.to_partition.colg)
  some

lemma to_tableau_pivot_col (T : ftableau m n) :
  pivot_col T = (to_tableau T).pivot_col :=
begin
  ext obj,
  simp [pivot_col, tableau.pivot_col, to_tableau, ftableau.read],
  dsimp [ftableau.read],
  refl
end

def to_lex (T : ftableau m n) (c : fin n) (r' : fin m) : lex ℚ (fin (m + n)) :=
(abs (T.read r' (fin.last _) / T.read r' c.cast_succ), T.to_partition.rowg r')

def pivot_row (T : ftableau m n) (obj: fin m) (c : fin n) : option (fin m) :=
let l := (list.fin_range m).filter (λ r : fin m, obj ≠ r ∧ T.to_partition.rowg r ∈ T.restricted
  ∧ T.read obj c.cast_succ / T.read r c.cast_succ < 0) in
list.argmin (T.to_lex c) l

lemma to_tableau_pivot_row (T : ftableau m n) :
  pivot_row T = (to_tableau T).pivot_row :=
begin
  ext,
  simp [pivot_row, to_tableau, ftableau.read],
  dsimp [ftableau.read],
  refl
end

instance : is_tableau ftableau :=
{ to_tableau := @to_tableau,
  pivot := @pivot,
  pivot_col := @pivot_col,
  pivot_row := @pivot_row,
  to_tableau_pivot := @to_tableau_pivot,
  to_tableau_pivot_col := @to_tableau_pivot_col,
  to_tableau_pivot_row := @to_tableau_pivot_row }

end ftableau

section test

open finset

def list.to_matrix (m :ℕ) (n : ℕ) (l : list (list ℚ)) : matrix (fin m) (fin n) ℚ :=
λ i j, (l.nth_le i sorry).nth_le j sorry

def vector.to_matrix (m :ℕ) (n : ℕ) (l : vector (vector ℚ n) m) : matrix (fin m) (fin n) ℚ:=
λ i j, (l.nth i).nth j

instance has_repr_fin_fun {n : ℕ} {α : Type*} [has_repr α] : has_repr (fin n → α) :=
⟨λ f, repr (vector.of_fn f).to_list⟩

def matrix.to_vector (A : matrix (fin m) (fin n) ℚ) :  vector (vector ℚ n) m :=
(vector.of_fn A).map (λ v, (vector.of_fn v))

instance {m n} : has_repr (matrix (fin m) (fin n) ℚ) := has_repr_fin_fun

def T : tableau 250 100 :=
{ to_matrix := list.to_matrix 250 100
  [[1, -1, 0, 0, -1, -1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 0, -1, -1, 1, 0, 1, 1, 1, 0, 1, -1, -1, 1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, 0, 0, 1, -1, 0, 0, 1, -1, 1, 1, -1, 1, 0, 0, -1, 1, -1, -1, 0, 1, 1, 1, 1, 0, 1, 1, 0, -1, 0, 0, -1, -1, 0, -1, -1, 1, 1, -1, 0, 1, -1, 1, -1, -1, 1, 1, 0, -1, -1, -1, -1, -1, 1, 0, 1, -1, 1, -1, 0, 0, 0], [-1, 0, 0, -1, 1, 1, 1, 1, -1, 0, 0, -1, -1, 1, 1, -1, -1, -1, -1, 1, 1, 1, 0, -1, 1, 1, 1, 1, -1, 0, 1, -1, -1, 0, -1, 1, -1, 1, 0, 1, 0, 0, 0, -1, 0, 0, -1, -1, 0, -1, 0, 1, -1, 1, -1, 0, 1, 1, -1, -1, -1, 0, 0, 0, 1, 1, 0, 1, -1, -1, 1, 0, 0, 0, 1, 1, -1, 0, -1, 0, -1, -1, 1, 0, -1, 1, -1, 1, 0, 1, 1, -1, 0, -1, 0, 0, 1, 0, 1, -1], [1, 1, -1, 1, -1, 0, 0, -1, -1, -1, 1, 1, 0, -1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, -1, 1, 0, 0, -1, -1, -1, -1, -1, 1, 0, -1, -1, 0, 0, -1, 1, 1, -1, -1, 1, 0, 1, 0, -1, 0, -1, 1, 1, -1, -1, -1, -1, 0, -1, -1, -1, 0, 0, -1, -1, 0, -1, -1, 0, 0, -1, 0, -1, -1, -1, 1, 0, 0, 0, 1, -1, 0, 0, 0, -1, 0, -1, -1, 0, 1], [0, -1, 1, 0, 0, 1, 0, 1, 0, 1, 0, -1, 0, 1, 0, -1, 0, 1, 1, 0, -1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, -1, 1, -1, -1, 0, -1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, -1, 0, 1, -1, -1, 0, 0, 0, 1, 0, -1, 1, 0, 1, 0, 0, 1, -1, 0, 1, -1, -1, 1, 1, -1, -1, 0, -1, -1, 1, 0, 1, -1, -1, -1, 1, 0, 0, 1, 0, 0], [1, -1, -1, 1, -1, -1, 0, -1, 0, -1, 0, 0, -1, -1, 0, 1, 1, 0, -1, -1, 0, 1, 1, 1, 1, 0, 1, -1, -1, 1, -1, 1, -1, 1, 1, -1, -1, 0, 1, -1, 1, -1, 1, 0, 1, -1, -1, -1, 1, 0, 0, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1, 1, 1, 1, 1, 0, 1, -1, 0, 1, -1, -1, 1, 1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, -1, 0, -1, 0, -1, 1, 0, 1, 1, -1, 1, -1, -1], [0, 1, -1, 0, 1, 0, -1, 1, -1, -1, -1, 0, -1, -1, 1, 1, 0, -1, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, -1, 0, 1, 0, 1, 0, 1, -1, -1, 1, 1, 0, 0, 1, -1, 0, 0, 1, -1, 0, 1, 1, -1, 1, -1, -1, 1, 0, -1, -1, -1, -1, 1, 0, 0, 1, 1, 1, 1, 0, -1, -1, 1, 0, 1, 0, 1, -1, -1, -1, 0, 1, 1, 0, 0, 0, -1, 1, 0, 0, 0, 1, -1, 1], [-1, -1, 0, -1, 1, 0, 1, 1, -1, 0, 1, -1, 0, 0, -1, -1, 0, -1, -1, -1, 1, 1, 1, 0, 0, -1, -1, 0, -1, 0, 0, -1, -1, 1, 0, 1, -1, -1, -1, 0, 0, -1, 0, -1, -1, 1, -1, 1, 0, -1, 1, 1, 1, 1, 0, 1, -1, 1, 0, -1, -1, -1, -1, 1, -1, 1, 1, 0, 0, 1, 0, -1, 1, 1, -1, -1, 1, 1, 1, -1, 1, 0, -1, -1, -1, 1, 0, 1, -1, -1, 1, 1, -1, -1, 1, -1, 1, 1, -1, 1], [0, -1, 1, 1, 1, -1, 0, -1, 1, 1, 1, 0, -1, 0, -1, -1, 0, 0, 1, 0, -1, 1, 0, 1, 0, -1, 0, 0, 1, 1, 0, 1, 0, -1, 1, -1, -1, 0, 0, 1, 0, 0, 0, 1, -1, -1, -1, -1, -1, -1, 1, 1, -1, -1, 0, -1, 1, -1, 0, -1, 0, 1, 0, 1, -1, 0, 0, 0, -1, 1, -1, 0, -1, 0, 0, -1, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, -1, 0, -1, 1, -1, -1, 0, 0, -1, -1, 1, 1, 1, 0], [1, -1, 0, 1, 1, -1, 1, 0, 1, -1, 1, -1, 1, 0, 0, 0, -1, 0, -1, 1, -1, 0, 1, 1, 0, -1, 0, -1, -1, -1, -1, -1, 0, 0, 0, 0, 1, 0, 1, 0, -1, -1, 0, -1, 0, 1, 1, 0, 0, -1, 0, -1, 0, 0, 1, -1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, -1, 0, 1, 1, -1, 1, -1, -1, -1, 0, 1, -1, 1, 1, 0, 1, 0, 1, 1, 0, -1, 0, 0, 1, 1, -1, 0, 1, 0, -1, 0, 1, 1], [0, 0, 1, 1, -1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, -1, -1, -1, 0, 0, -1, 1, -1, 0, -1, 1, 0, 0, 1, 1, 0, -1, -1, -1, 1, -1, 0, 0, 0, 1, 0, 1, -1, 1, 0, 0, 0, 0, 1, -1, 1, -1, -1, 0, 1, 0, 1, -1, -1, -1, 1, -1, 1, 1, 1, -1, 0, 0, 1, -1, 0, 1, 1, 1, 0, -1, 1, 1, 1, -1, -1, 0, 1, 0, 0, 0, -1, 1, -1, 0, -1, -1, -1, 0, -1, 0], [-1, 0, 1, -1, 1, 1, -1, -1, 1, 1, -1, 0, 1, -1, 1, -1, 1, 0, -1, 1, -1, 1, -1, -1, 1, 1, 1, 0, -1, 1, 1, 0, 0, 1, 1, 1, 0, 0, -1, 0, 1, -1, 0, -1, -1, 1, 0, 0, -1, 1, 0, 1, 1, -1, 0, 1, 1, 1, -1, 0, -1, 0, 0, 0, 1, 1, 1, 0, -1, 1, -1, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, -1, -1, -1, 0, 0, -1, 1, 1, -1, -1, 1, 0, 1, 1, 1, 0], [0, -1, 0, 0, 0, 0, -1, -1, 1, 0, -1, 0, 0, 1, 0, -1, 1, 1, 1, 1, 1, -1, 1, -1, 1, 0, -1, 1, 0, 1, 1, 0, 1, 0, 1, -1, 1, 1, 0, 1, 0, -1, 0, -1, -1, 0, 0, 1, -1, -1, 0, 1, 0, 1, 1, 1, 1, -1, -1, -1, -1, 1, 1, -1, 1, -1, -1, -1, 0, 0, -1, 1, 1, -1, 1, 1, -1, -1, 1, 0, -1, 1, 1, 1, 0, 1, 1, -1, 0, 0, -1, 1, 0, 1, 1, -1, -1, 1, -1, 1], [1, 0, -1, 1, 0, -1, 0, -1, 0, 1, 0, -1, 1, 1, 0, -1, 0, 0, 1, -1, 0, 0, -1, -1, 0, 1, 0, -1, -1, 1, 1, 1, 1, 0, 1, 0, -1, -1, 0, 0, 0, -1, 1, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, -1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, -1, -1, 1, 1, 0, 0, -1, 0, 1, 1, -1, -1, 1, 0, 1, 0, 0, -1, -1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 1], [1, 1, -1, -1, 1, -1, 1, 1, 0, 1, -1, 0, -1, -1, -1, -1, 1, -1, -1, -1, 0, -1, 0, -1, 1, 1, 1, 0, -1, -1, 1, 0, 1, -1, -1, -1, 0, 1, 1, -1, -1, 1, 0, -1, 0, 1, -1, 0, 1, -1, 0, 1, 1, 1, 0, 1, -1, 1, 1, 0, -1, 0, 1, -1, 1, -1, -1, 1, 1, -1, 1, -1, 1, 1, 0, -1, -1, 0, 1, -1, 1, -1, -1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 1, -1, 1, -1, -1, 1, -1, 0], [1, 1, 1, -1, -1, -1, -1, 1, 1, -1, 1, -1, 0, 1, 1, -1, 0, 1, 0, 1, -1, -1, 0, 0, -1, -1, 1, 0, -1, 0, 0, 1, 1, 0, 0, -1, 0, -1, 1, 0, 0, 0, -1, 0, 0, 1, 0, 1, -1, 0, 1, -1, 1, 0, -1, 1, 1, -1, 1, 0, -1, 1, 0, 1, 0, -1, 1, 1, -1, -1, 1, 0, 1, -1, -1, 1, 1, 0, 1, -1, 1, -1, 1, -1, 0, 0, -1, 1, -1, -1, -1, 0, -1, -1, 1, 1, -1, 0, -1, 1], [1, -1, -1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, -1, 1, -1, 1, -1, -1, -1, 0, 0, 0, 0, 1, 0, -1, 0, -1, 1, -1, -1, -1, 1, -1, 0, 0, 0, -1, -1, 0, 1, -1, 1, 0, 1, 1, 0, 0, -1, 1, 1, -1, -1, -1, -1, 0, 1, 0, -1, -1, -1, -1, 0, 1, 1, 1, 1, -1, 1, 1, 1, 1, 0, 1, 0, 0, -1, -1, 0, 1, 1, 1, -1, 0, 0, -1, -1, 0, -1, -1, 0, 1, -1, -1, -1, 1, -1, 1, -1], [-1, 1, 1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 1, -1, 1, 0, -1, 0, 0, -1, 1, 1, -1, -1, -1, 0, -1, 1, -1, 1, 0, 0, 0, -1, 1, 0, -1, 0, 0, -1, -1, 0, 0, 1, 0, -1, 0, 0, -1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 0, -1, 0, 0, 1, -1, 0, -1, -1, -1, -1, 1, 1, -1, 0, 0, -1, 1, -1, 0, -1, 0, 1, 1, 1, -1, -1, -1, 0, -1, -1, 0, -1], [-1, 1, 1, -1, 0, -1, 0, 0, -1, 1, 0, 1, 0, -1, 1, 0, -1, -1, -1, -1, 0, 1, -1, 0, 0, 0, -1, -1, 1, 1, -1, -1, 0, -1, 1, -1, 1, 0, 1, 0, 1, 0, 1, -1, -1, 1, 0, 0, -1, -1, -1, 0, 1, -1, 0, 0, 1, 0, 1, 1, -1, 1, 0, -1, -1, 1, -1, 0, -1, 1, -1, 0, 0, 0, -1, 0, 1, 0, 0, 1, 0, 0, -1, 0, 0, 1, 1, 1, 0, 0, 0, -1, 1, 0, 1, 1, 0, 0, 1, 0], [1, 1, -1, -1, -1, 0, 0, 1, -1, 0, -1, 1, 0, 0, -1, -1, 1, -1, 1, -1, -1, 1, 1, 1, 1, -1, 0, 1, -1, -1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, -1, 1, -1, 0, -1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, -1, 0, -1, 0, -1, -1, -1, 1, 0, 1, -1, 0, 1, -1, -1, 0, -1, -1, 0, -1, -1, 0, 1, 1, 1, 0, 0, 1, 0, -1, 0, 1, -1, 1, 0, 0, 0, 0, 0, 1, 0], [-1, 1, 1, 1, 1, 0, -1, 1, 0, 1, -1, 1, 1, 0, 0, 1, -1, -1, 1, 1, 0, -1, 1, 1, 0, 0, -1, -1, -1, -1, 1, 1, -1, 0, -1, -1, 0, 0, -1, -1, 1, 1, 0, 0, 0, 0, -1, 1, 0, -1, 1, 1, 0, 0, -1, 1, 0, 1, 1, 1, -1, -1, 0, 1, 0, 1, 0, 0, 0, 1, -1, 0, 1, 1, -1, 0, -1, 0, 1, 0, -1, 0, 0, 0, 1, -1, 0, 0, 1, 1, -1, 0, -1, 0, 1, 0, 0, 1, 1, 1], [0, 0, 0, 0, 0, 0, -1, 0, -1, 1, 0, -1, -1, 1, -1, -1, 1, -1, -1, -1, 1, -1, 1, -1, 1, 1, 1, -1, 0, 0, 0, -1, 1, 1, -1, -1, 0, -1, -1, -1, 0, 0, 1, 0, -1, 0, 0, 1, 1, -1, 0, -1, 0, 0, -1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, -1, 0, -1, 0, -1, -1, 0, -1, 0, 1, 0, -1, -1, -1, -1, -1, -1, 0, 0, 1, 0, 0, 0, 1, -1, 0, 1, 0, -1, 1, -1, 1, 1, 0], [1, -1, -1, 0, 0, 0, -1, -1, 0, 1, 1, 1, 0, 0, 1, -1, 1, 0, 1, 1, 0, -1, -1, 1, -1, 0, 0, -1, 1, 1, -1, 0, 0, -1, 1, 0, 1, 1, 0, 0, 0, -1, 1, 0, -1, 1, 1, 0, 1, 1, 1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 1, 1, 1, -1, 0, 0, 0, 0, -1, 1, -1, 1, -1, 0, 0, -1, 1, 1, 0, 0, 0, -1, 0, -1, -1, -1, 1, -1, 1, -1, 0, 1, 0, 1, 0, -1, 0, 0, 0, 1], [1, 1, 0, 0, 0, -1, -1, 0, 1, -1, 0, -1, 1, -1, 0, 1, 1, 0, 1, 1, 1, -1, 0, -1, -1, 0, -1, -1, 0, -1, -1, -1, 0, -1, -1, -1, -1, 1, 0, 0, 1, -1, 0, 1, -1, 1, -1, 1, 1, -1, 0, 1, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, -1, 0, 1, 1, 0, -1, 0, 0, 1, 0, -1, 0, 0, 0, -1, 1, 0, 1, -1, 0, 0, -1, 0, -1, -1, 0, -1, 1, 0, 1, 1, -1, 0, 0, -1], [-1, 1, 0, 1, -1, 1, 1, 0, -1, 1, 0, -1, -1, 1, 0, -1, 1, 1, 0, -1, -1, 1, 1, -1, -1, -1, -1, 1, 1, 0, 1, -1, -1, -1, -1, 1, 0, -1, 1, 0, 1, 0, 1, 0, 0, 0, -1, 0, 1, -1, 0, 0, 0, 0, -1, -1, 0, 0, -1, 0, 1, -1, -1, 1, 1, 0, -1, 1, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 0, -1, -1, -1, -1, 0, -1, 0, -1, 0, -1, 1, -1, -1, -1, 0, 1, 0, 1, 1, 1, 0], [0, 1, 0, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 0, 0, 1, -1, -1, 0, 1, 1, 0, 1, -1, -1, -1, -1, 1, 0, 0, -1, -1, 1, 0, 0, 1, -1, -1, -1, -1, -1, 0, 1, 0, 0, -1, -1, 0, 1, 1, 0, -1, 0, -1, 0, 0, -1, 1, -1, 0, -1, 0, 0, 0, -1, 0, -1, 0, 1, -1, 0, 0, 1, -1, 0, 1, -1, 0, -1, 1, 0, 1, 0, -1, 0, 0, 0, 1, 1, 0, -1, 0, 1, 1, -1, 1, 0, 0, -1, 1], [-1, 1, 0, -1, 0, -1, -1, 0, 1, 0, 0, -1, 1, -1, 1, 0, 1, -1, 0, 1, 0, 1, 1, 1, 0, -1, 0, -1, 1, 0, -1, -1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, -1, 0, 0, 1, 1, 1, 0, 1, 1, 1, -1, 0, 1, -1, 1, -1, -1, 1, -1, 0, 1, 1, 0, 0, 1, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0, 1, -1, 0, 1, 0, 0, -1, 1, -1, 0, -1, -1, -1, 1, -1, 0, 0, 1, 0, 1, 1, 0, 1], [-1, 1, -1, -1, 1, 1, 1, -1, 1, 1, -1, 0, 0, -1, 0, -1, 1, -1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, -1, 1, 0, -1, 1, -1, -1, 1, -1, -1, -1, 0, 0, -1, -1, -1, -1, -1, 1, 0, 0, -1, 0, 0, -1, -1, 1, 0, 0, 0, 0, -1, -1, -1, -1, 0, -1, 1, 0, 0, 0, -1, 0, -1, -1, -1, 1, 0, -1, 0, 1, 1, 0, -1, 1, 1, -1, -1, 0, -1, 0, -1, -1, 1, -1, 0, 0, 1, -1, -1, -1, 0], [1, 0, 1, -1, 1, 0, 0, -1, 0, 1, 0, 1, 0, 0, -1, 0, 1, 0, 0, -1, -1, 0, -1, -1, 0, -1, -1, 0, -1, 1, 0, -1, 0, 0, 0, 0, 1, -1, 1, 1, -1, 0, 0, 0, 1, 0, -1, -1, -1, 0, 1, -1, 1, 1, 0, -1, 1, 0, -1, 1, 1, 0, 0, 1, 1, 1, -1, 1, 0, 1, 1, -1, 0, 0, 1, 1, 0, -1, 1, 0, -1, -1, 0, -1, 0, -1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0], [0, -1, 1, 0, 1, -1, -1, 0, 1, 0, 1, -1, 0, -1, 0, 0, 0, 0, 0, 0, -1, -1, 1, -1, -1, 1, 0, 1, 1, 1, -1, -1, -1, 1, -1, -1, 0, -1, 0, 1, 1, 0, 0, 1, -1, -1, 0, -1, 0, 0, 0, -1, -1, 0, -1, 1, 1, -1, 1, 0, 1, 1, 1, -1, 0, 0, 1, -1, -1, -1, -1, 1, 1, 1, -1, -1, 1, -1, 0, 0, 1, 0, -1, 0, -1, 0, -1, 1, 1, 1, 1, 0, -1, -1, -1, -1, -1, 0, 1, 0], [-1, 1, -1, -1, 0, 1, -1, 0, 1, -1, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 1, -1, 0, 0, 0, -1, -1, 0, -1, 0, 0, -1, 1, 0, -1, -1, -1, -1, 0, 1, 1, -1, 0, -1, -1, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1, 1, 0, -1, -1, 1, 0, 1, 1, -1, 0, -1, 1, -1, 0, -1, -1, 0, 1, 0, 1, 0, 1, 1, 0, -1, 1, 1, -1, 0, 1, -1, 0, 0, 0, 0, 1, 1, 1, -1, 1, -1], [0, 0, 0, -1, 1, -1, -1, -1, 0, 0, 1, 1, 0, 0, -1, 0, -1, 0, -1, 0, 1, 1, -1, -1, 1, -1, 1, 1, 0, -1, -1, 1, -1, 0, 0, 0, 0, 0, -1, 1, -1, 0, 0, -1, -1, 0, 1, 1, 0, 0, 0, -1, 1, 0, -1, 1, 0, 1, 1, 0, 1, -1, 0, -1, -1, -1, -1, 1, 1, 1, -1, 0, 0, 0, -1, 1, 0, 0, 1, 0, -1, 0, 0, 0, -1, 0, 1, 1, 0, 1, -1, 1, 0, 0, -1, 0, 0, 0, -1, 1], [-1, 1, -1, -1, -1, 1, 0, -1, -1, 1, 0, 0, 1, 0, 1, 1, -1, 0, -1, -1, 1, -1, -1, 1, 0, -1, 0, -1, 0, 1, 0, 1, 0, 0, -1, 0, 1, -1, -1, 1, 1, 0, 1, 0, 1, 0, 0, 1, -1, 0, 0, -1, -1, 1, 0, 0, -1, 1, -1, 1, -1, 1, 0, 1, 1, 0, -1, 0, -1, 1, 1, 0, -1, -1, 1, -1, 1, 0, -1, 0, 0, 0, -1, 1, 1, -1, -1, 1, 0, -1, -1, 0, -1, 0, 1, -1, -1, -1, 1, 0], [1, 0, -1, 0, 1, 0, -1, -1, 0, -1, 0, 1, 1, -1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, -1, 1, 1, -1, -1, 1, 1, -1, 1, -1, 0, 1, 1, 1, -1, 0, 1, 0, 1, 0, 1, 1, 1, -1, 1, 1, 0, -1, -1, -1, 0, -1, -1, 0, -1, 0, 0, -1, 0, -1, 0, -1, 0, -1, -1, 0, 0, 1, 0, 1, -1, 1, 1, 1, -1, -1, 1, -1, -1, 0, -1, -1, -1, -1, -1, 0, -1, 1, 0, 0, 1, 1, -1, 1, 0], [1, 1, 1, 0, 0, -1, 1, -1, 1, 0, -1, 1, -1, -1, -1, 0, 1, -1, -1, 0, 1, -1, 0, 0, -1, 1, 0, 1, 0, -1, 0, 1, 1, 1, 1, 1, 1, -1, 1, 1, -1, 0, 1, 0, -1, 1, 1, 0, 0, 0, 1, -1, -1, 0, 1, 0, -1, 1, -1, -1, 0, 1, -1, 0, 1, 0, -1, -1, 1, 1, 1, -1, 1, -1, 1, 1, 0, -1, 0, -1, 0, 0, 1, 0, 0, 0, -1, -1, -1, 0, 0, 1, 1, 1, -1, 0, -1, 1, -1, 0], [0, 1, 1, 1, 0, 1, 0, -1, 1, 0, 1, 1, 1, 1, 0, -1, 0, 1, 0, 0, 0, 0, 0, -1, 0, -1, -1, 0, 0, -1, 0, 1, 1, 0, 0, 0, 0, -1, -1, 1, 0, -1, 1, -1, 0, 0, -1, -1, -1, 0, -1, 1, 1, 1, 1, -1, 1, -1, 1, 1, 1, 1, 0, -1, 1, 0, 0, -1, -1, -1, -1, 0, -1, -1, -1, 1, -1, 0, 0, -1, 0, 1, -1, 0, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, -1, 0, 1, 1, -1, 1], [1, -1, 0, 1, 1, 0, -1, 0, 0, 1, 1, 1, -1, 1, 1, -1, -1, -1, -1, -1, 1, -1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, -1, 1, 1, -1, 1, 0, 0, -1, 0, 1, 0, 1, 0, -1, 0, 0, 1, 1, -1, 1, -1, 1, 0, 0, 1, 0, -1, -1, 1, 1, -1, 1, -1, 1, 0, 1, 1, 0, 1, 1, 0, -1, 1, -1, -1, 0, -1, 1, -1, -1, 1, 0, 0, 0, 1, 1, -1, 0, 1, 0, 0, 0, 0, -1, 0, -1, -1, 1], [-1, 1, 1, 0, -1, -1, 1, 0, 0, 0, 0, -1, 0, 0, 0, 0, -1, 1, 0, 0, 1, 0, 0, 1, 0, -1, 1, 0, 1, -1, -1, 1, -1, 0, -1, 1, 0, -1, -1, 1, 0, 0, -1, -1, -1, 1, 1, -1, 0, 1, -1, 0, 1, 1, 0, 0, -1, -1, 1, -1, 0, 1, 0, 0, 1, -1, -1, 1, 1, -1, -1, 0, 0, -1, 0, 1, 1, 1, 1, -1, 0, -1, -1, 1, 1, -1, -1, 0, 0, 0, 1, -1, 0, 1, 0, 0, 1, 1, -1, 1], [1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, -1, 1, -1, 1, -1, 0, -1, -1, 1, -1, 1, 1, -1, 0, 1, 0, 0, 0, 1, -1, 0, 0, -1, 1, 0, -1, -1, 0, 0, -1, 0, 0, 1, -1, 1, 1, -1, 0, 1, -1, 0, -1, -1, 0, 1, 0, 1, -1, 0, -1, 0, 0, -1, 0, -1, 1, 0, 1, -1, -1, -1, 1, 0, -1, 1, 0, 0, -1, 1, -1, -1, -1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1], [1, 0, 1, -1, 0, 1, 0, -1, -1, 1, -1, 1, -1, -1, 0, -1, 0, -1, -1, 0, -1, 0, -1, 1, 0, -1, -1, 1, -1, -1, -1, 0, 1, 0, -1, -1, 1, 1, -1, 0, -1, -1, -1, 1, 1, -1, 1, 1, -1, 1, -1, 0, 1, -1, 1, 1, 1, -1, 0, 1, -1, -1, 1, 1, -1, 1, -1, 1, -1, 1, -1, 0, 0, 0, -1, -1, -1, 0, -1, 0, 1, 1, -1, 0, 1, -1, 1, 0, 1, 1, 0, -1, 0, -1, 1, -1, 0, 1, 1, 0], [-1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, -1, 0, -1, 0, -1, 1, -1, 1, 1, 0, -1, 1, 1, 0, 1, -1, 1, 1, 0, -1, 0, -1, 0, 0, 0, 1, 1, -1, 0, 0, 1, 1, 0, 1, 0, 0, 0, -1, 1, 0, 1, 1, 1, 0, 0, -1, 1, 1, 0, -1, 1, 1, 1, 0, 0, 1, -1, 1, 1, -1, 0, -1, -1, 0, 0, 0, 1, -1, -1, 1, 1, 1, -1, 0, 1, 1, -1, 0, 0, 0, 0, -1, 1, 1, -1, -1, -1, -1, -1], [-1, -1, 1, 1, -1, -1, 1, 0, -1, 0, 0, 1, 0, -1, -1, 0, 1, 1, -1, -1, 1, 0, 0, 1, -1, 1, 1, 0, 0, 0, 1, -1, 1, -1, 1, 0, 0, -1, -1, -1, -1, 1, 0, -1, 0, -1, 1, 1, 1, 0, 0, 1, 1, -1, 0, 1, 1, 1, 1, 0, 0, 1, -1, -1, 1, -1, 1, 0, 1, -1, 0, 0, 1, 1, 0, -1, 1, 1, -1, -1, -1, -1, 0, 1, -1, 1, 0, 0, -1, -1, -1, -1, -1, 1, 1, 1, 0, -1, -1, 0], [1, 1, 1, 0, 1, -1, 1, -1, -1, -1, 0, 0, 1, 0, -1, 1, -1, 0, -1, 0, 0, 0, -1, -1, 1, 0, 0, -1, 0, -1, 0, 0, 1, 0, -1, -1, -1, 0, 1, 1, 1, 0, 1, -1, -1, -1, -1, 0, 1, -1, 0, -1, -1, 0, 1, 1, 1, 0, 1, -1, -1, 1, 0, 1, 0, 0, 1, -1, 0, -1, 1, 1, -1, -1, 1, 0, -1, -1, -1, -1, 0, 1, -1, -1, 1, -1, 1, 1, 0, 0, 1, 0, -1, 1, 0, 0, 0, 0, -1, 1], [0, 0, 1, 0, 0, -1, 0, -1, 0, 0, 1, -1, -1, 0, 0, 0, 1, -1, -1, 1, 1, 1, -1, 1, 1, 1, 1, 0, 0, -1, 0, -1, 1, 1, 0, 0, -1, 0, -1, 1, 1, 1, 0, 0, 1, 0, 0, 1, -1, 0, 0, 0, 0, -1, -1, -1, 0, -1, 1, 1, -1, 1, 1, 0, -1, 1, 0, 1, 0, 1, -1, 0, -1, -1, 1, 0, 0, 1, 0, 1, 1, 0, 1, -1, 1, 0, 1, 0, 1, -1, -1, -1, 0, -1, 0, -1, 1, 0, 0, -1], [-1, -1, 0, -1, 1, 0, 0, -1, 0, 0, 1, 1, 0, -1, 0, -1, 1, 1, 0, -1, 0, 1, 0, 0, 0, 0, 1, -1, -1, -1, 1, 1, 1, -1, 1, -1, -1, 1, 0, 1, 0, -1, 1, 0, -1, 0, -1, 1, 1, 0, -1, 1, 1, -1, -1, -1, 1, -1, 0, 1, 0, 1, -1, 0, 0, -1, 0, 1, 1, -1, -1, -1, 1, -1, -1, -1, 1, 0, -1, 1, 1, 0, -1, 1, -1, 0, -1, -1, 1, -1, -1, -1, -1, 1, -1, -1, 0, 1, 0, -1], [0, 0, 0, -1, 1, 1, -1, -1, 1, 0, 1, -1, 1, 1, 0, 0, 0, -1, 0, -1, 0, 1, -1, -1, 0, 1, 1, -1, -1, -1, 0, -1, 1, -1, 0, -1, 1, 1, 1, 1, 1, 0, 1, 1, -1, 1, -1, -1, -1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, -1, 1, -1, -1, 0, 0, 0, 1, 1, 1, -1, 0, -1, 1, 1, 1, 1, 0, 1, 0, -1, 0, 1, 0, -1, -1, 1, -1, 0, -1, 1, -1, 1, 0, -1, -1, -1, 1, -1], [0, 1, -1, 0, 1, 1, 1, -1, -1, -1, -1, 1, -1, 0, -1, 0, 0, 0, 0, -1, 1, -1, -1, 0, -1, -1, -1, -1, 0, 0, 0, 1, 1, 1, 0, 1, -1, -1, 1, -1, 1, -1, -1, 0, 0, 0, 0, 0, 0, 1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 0, -1, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, -1, -1, 1, 0, 1, 1, -1, 0, 1, -1, -1, -1, 1, 1, 0, 0, -1, 1, -1, 1, 0, -1, 1, -1, -1, 0, -1], [-1, 0, -1, 0, 1, -1, -1, 0, 0, 1, 0, 1, 1, 1, 1, -1, -1, -1, 0, 1, -1, 0, 1, 1, -1, 1, -1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, -1, 1, 1, 1, 1, 0, -1, 0, 0, 0, 0, -1, -1, -1, 0, 1, 0, 1, -1, 1, 0, 0, 1, -1, 0, -1, 0, -1, 0, 1, 1, 1, 1, -1, -1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, -1, 0], [1, 0, 1, 0, 1, 1, -1, 1, -1, 0, 0, -1, 0, 0, 1, 1, 0, 1, 0, 1, 1, -1, -1, 0, -1, 0, 1, 0, -1, -1, 1, -1, 0, -1, 0, 0, 1, -1, 1, 1, 1, 1, -1, 0, 0, -1, 1, 1, 0, -1, 0, 0, 1, 1, 0, 0, -1, 1, 0, -1, 0, -1, 1, 1, 0, -1, 1, 1, 0, 0, 0, -1, -1, 1, -1, 1, 0, 0, -1, 1, 1, 1, 0, -1, 1, -1, 0, 0, 0, 1, 0, 0, -1, -1, 0, 0, -1, 0, 0, 0], [0, 1, 0, 1, 0, -1, 0, 0, 1, 1, 1, -1, 1, 0, 1, -1, 1, -1, 1, 1, 1, -1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, -1, -1, 1, -1, 0, -1, -1, -1, 0, -1, -1, 1, -1, -1, 0, -1, 1, 1, -1, 0, -1, -1, 1, 0, 1, 1, 1, 0, -1, 0, 0, 0, 0, 1, 1, 1, -1, -1, -1, 1, 1, 0, 1, 0, 1, -1, 0, 1, 0, 1, 0, 1, -1, 0, -1, -1, 0, -1, -1, 1, 0, 0, 0, 0, 0], [0, 1, -1, -1, 1, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, 0, 0, -1, 1, -1, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 0, -1, 1, -1, 1, 0, 0, 0, 1, 0, 1, 0, -1, -1, 0, 0, 1, -1, -1, -1, -1, -1, -1, 1, -1, 1, 1, 0, 1, -1, 1, 1, 1, 0, -1, 1, 0, 1, 1, 0, -1, -1, -1, 0, 1, -1, 0, 0, 0, -1, -1, 0, 0, -1, 0, 0, -1, 0, -1, -1, -1, -1], [0, 1, 1, -1, 0, -1, -1, 1, -1, -1, -1, 0, 0, 1, -1, -1, -1, -1, 0, 0, 0, -1, -1, 1, 0, 1, -1, 0, 0, -1, 0, 0, 0, 1, -1, 1, -1, 0, -1, -1, 1, -1, 0, 0, 0, -1, 1, -1, -1, 1, 0, -1, 1, 0, -1, 0, -1, 1, 1, 1, -1, 1, 0, 0, 0, -1, 0, 0, 0, -1, 0, -1, -1, -1, 0, 0, -1, 0, 1, 0, 0, 0, 1, 1, 0, -1, 1, 0, -1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, -1], [1, 0, -1, -1, 0, 1, 0, 1, 0, -1, 0, 1, 1, -1, 1, -1, 1, 1, 0, -1, 1, -1, 0, -1, 1, 1, 1, -1, 1, -1, 0, 1, 0, 0, -1, 1, 1, 0, 0, 0, 0, -1, 1, 1, 0, 1, 0, 0, -1, 1, 0, -1, 0, 0, 1, 1, 1, 1, -1, -1, -1, -1, -1, -1, 0, 1, 1, 0, -1, 0, 1, 0, 1, -1, -1, -1, 1, -1, -1, -1, 1, 0, -1, 1, 1, -1, -1, 0, 1, -1, 1, 1, -1, 1, 1, 0, 1, 1, -1, 0], [-1, -1, -1, 1, 0, -1, 1, -1, 0, -1, -1, -1, 1, 0, 1, -1, 1, 1, 0, -1, 0, -1, -1, 0, 1, 0, -1, -1, 0, 1, -1, -1, -1, 0, 1, 1, 1, 1, 1, 1, -1, -1, 0, -1, 0, -1, 0, 1, 0, 0, 0, 0, 0, 1, -1, -1, 0, 0, -1, 0, 0, 0, -1, -1, 1, 0, -1, 0, -1, 0, 1, -1, -1, -1, 0, 0, 0, 0, 0, -1, 1, 1, 1, -1, 0, 0, -1, -1, 0, 1, -1, 0, -1, 1, 1, 0, -1, 1, 1, 0], [0, 1, -1, 0, 0, 1, 0, -1, 1, -1, 0, 1, -1, 1, -1, 0, -1, 0, 0, -1, -1, 1, 0, 1, 1, -1, 1, -1, 0, -1, 1, 0, -1, 0, -1, 0, 0, -1, -1, -1, -1, 1, 0, 0, 1, -1, -1, 0, 1, 1, -1, 0, -1, -1, -1, 0, -1, 0, -1, -1, -1, 1, -1, 0, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, -1, 0, 1, -1, -1, 0, 0, 1, 1, -1, -1, 0, -1, 1, 1, 1, 0, -1, 1, 1, 1, 0, -1, 1, -1, 0], [0, 1, -1, 1, 0, 0, 0, -1, 1, -1, -1, -1, 0, 0, 1, -1, 0, 1, 1, -1, 1, 1, 0, 1, -1, 0, 1, 0, 0, -1, -1, 0, 1, 1, 1, 1, -1, 1, -1, -1, 0, 0, 0, 0, 1, -1, 1, 0, -1, 0, 0, 1, -1, 0, -1, 1, 0, 1, 0, 1, 1, 0, 0, -1, 0, -1, 1, -1, -1, -1, 0, -1, -1, 0, 0, 0, 1, 1, 1, -1, 0, 0, 1, -1, -1, 1, 1, 1, -1, 0, -1, 1, 0, 0, 0, 0, 0, 1, -1, 1], [0, -1, 0, 0, 0, 1, -1, -1, 0, 1, -1, 1, -1, 0, 1, -1, 1, 0, -1, 1, 1, 0, 1, 1, 0, 0, 1, 1, -1, 1, 0, 0, -1, -1, 0, 1, -1, 0, 0, 0, 0, 1, -1, 1, 1, -1, 1, -1, -1, 0, 0, 1, 0, -1, -1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, -1, 1, 0, 0, 0, 1, 0, -1, 1, 0, 1, 0, -1, 1, 0, 1, 1, -1, -1, -1, -1, 0, -1, 0, 0, 1, -1, 0, 1, 1, -1], [0, 1, 1, 0, -1, 0, 1, -1, -1, 0, 0, -1, 1, 0, 1, 0, -1, -1, -1, 0, 1, 0, 1, 1, 0, -1, 0, 1, 1, -1, -1, -1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, -1, 0, 1, 1, 0, -1, 1, 1, 1, 0, -1, 1, -1, -1, -1, 0, 0, -1, 0, 0, -1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, -1, 0, 0, -1, -1, 1, 1], [0, 1, 1, 0, 1, -1, -1, -1, -1, -1, -1, 1, 1, -1, 0, -1, 1, 1, 1, 0, -1, -1, 1, 0, 1, -1, 1, 0, 0, 0, 0, -1, 0, -1, 0, 0, 0, 0, 1, 1, -1, 0, -1, -1, -1, 1, 1, 0, 0, 1, -1, -1, 1, 0, 0, 0, 1, 1, -1, 0, -1, 0, 0, 1, 1, 0, -1, 0, 0, 0, 1, 0, -1, 1, 1, -1, 0, -1, 0, -1, -1, 0, -1, 0, 0, 0, 1, 1, 1, -1, -1, 0, 1, -1, 0, 1, -1, 1, 1, 0], [1, 0, -1, -1, 0, 0, -1, 1, 0, 1, 1, -1, 1, -1, 1, 0, 1, -1, 1, -1, 1, -1, -1, 0, -1, 1, 0, 1, -1, 1, 1, 1, -1, 1, 0, 1, -1, 1, 1, 0, 0, -1, 1, 0, 1, -1, 0, 0, 1, 0, 0, 1, 1, 0, -1, -1, -1, -1, 0, -1, -1, 0, -1, -1, 1, 1, 0, 0, 1, 0, 0, 1, -1, 0, 1, -1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 0, -1, 1, 0, 1, -1, 0, -1, -1, 1, -1, -1, 1, 1, 1], [1, -1, 1, 1, 0, 1, -1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, -1, 0, 0, -1, 1, -1, -1, -1, 0, -1, -1, 1, 1, 0, -1, 1, 1, 1, 0, -1, 1, -1, 1, 1, 1, -1, 0, -1, 0, -1, 0, 1, 0, -1, 0, -1, 0, 0, 1, 1, -1, 1, -1, 1, -1, 1, 1, -1, -1, 1, 1, -1, -1, 0, -1, -1, 1, 1, -1, -1, 1, -1, -1, -1, 0, -1, 1, -1, 0, 0, -1, 1, 1, -1, -1, -1, 0, 1, -1, 1, 1, 0, 1], [-1, -1, -1, -1, 1, 0, 1, 0, -1, 0, 1, -1, 0, 1, 0, 0, -1, 1, 1, 0, -1, -1, -1, 0, -1, 1, 1, 1, 0, -1, -1, -1, 1, -1, 1, 1, -1, 1, 0, -1, 1, 1, 0, -1, 0, 0, 0, 0, 0, -1, -1, 1, 1, -1, 1, -1, 0, -1, -1, -1, -1, -1, 1, 1, 1, -1, 1, 0, 1, 1, 0, 1, 0, -1, 0, 0, -1, -1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, -1, 0, 1, 0, 0, 1, -1, 0, 0, 0, 1, 0], [1, 0, 0, -1, 1, 1, 1, -1, -1, 1, 1, 1, 1, 0, -1, -1, 1, 1, 1, -1, -1, -1, 1, -1, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -1, 0, -1, -1, 1, -1, 0, 0, 1, 0, 1, -1, 0, 1, -1, 0, 1, 1, -1, -1, 1, 0, -1, 1, -1, 1, 1, 0, 1, 1, -1, 0, 1, 0, -1, 0, -1, -1, -1, -1, -1, -1, 1, 0, 0, -1, 1, -1, -1, -1, 0, 0, 1, -1, -1, 1, 1, 0, 0, 0], [1, -1, 1, 1, 1, -1, 1, 0, -1, 0, 1, 1, 0, 0, -1, 0, -1, -1, 0, 1, 1, -1, 0, -1, 0, 1, 0, -1, 0, 1, 1, 0, -1, 0, 0, -1, -1, 0, 0, -1, -1, 1, 0, 0, -1, 1, -1, 0, 1, 0, -1, -1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, -1, -1, 0, 0, 0, -1, 0, -1, -1, 1, 1, 1, 1, 0, 0, 1, 1, -1, 1, 1, 0, 0, 1, 0, 1, -1, 1, 1, 0, -1, 0, 0, 1, 1, -1, 1, 1], [-1, 1, -1, 1, -1, 1, 1, 0, 1, -1, 1, 1, -1, 0, -1, -1, 1, 0, -1, 0, -1, 0, -1, 0, 0, -1, -1, 0, 1, -1, 1, 1, 1, -1, -1, 1, 0, -1, 1, 0, 1, 1, 0, 1, -1, -1, -1, -1, 1, 1, 1, -1, -1, 1, 0, -1, -1, -1, 0, -1, -1, 1, 1, -1, 1, 0, 0, 1, 0, -1, 1, 1, -1, -1, 0, 1, 0, 0, -1, 1, 0, -1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, -1, 1, -1, 1, 0, 0, 1], [0, -1, -1, 1, 0, 0, 0, 1, 1, -1, 1, 0, -1, 1, -1, 0, -1, 1, 1, 0, 1, -1, -1, 0, 0, 0, -1, 0, -1, 0, -1, -1, 1, -1, 0, 0, 0, -1, 1, -1, 0, 1, 0, 0, -1, 0, 1, 1, 1, 1, 1, 0, -1, 0, 0, 1, 0, -1, 1, 1, 0, 1, 0, 0, 1, -1, 0, 0, -1, 0, 1, -1, 0, 0, 1, -1, 0, 0, 1, 0, -1, -1, 0, 0, -1, -1, -1, 0, -1, 1, 0, -1, 1, 0, 1, 1, 1, 0, 1, -1], [0, -1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, -1, 1, -1, 0, 1, -1, 1, -1, 0, -1, -1, 0, 0, -1, 1, 1, 1, -1, -1, 0, 1, 1, 0, -1, 0, 0, 0, 1, -1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, -1, 1, 0, 0, -1, 0, 0, 0, 1, 0, 1, 1, 1, -1, 1, 0, 0, 0, 0, 0, -1, 0, 1, 1, -1, 0, -1, -1, 0, -1, 1, 0, 1, 1, 1, -1, -1, -1, 0, -1, -1, 0], [-1, 1, 1, 1, -1, 0, -1, 1, 1, -1, 0, 1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 0, 0, -1, -1, 1, 1, -1, -1, -1, 0, 0, 1, 1, 0, -1, 0, 0, 1, 1, -1, 1, 1, 1, 0, -1, 0, 1, 0, 0, 1, 1, -1, 0, 0, -1, 0, 1, -1, 1, -1, -1, 0, 1, 1, 0, -1, 1, 0, -1, 0, -1, 1, 0, -1, -1, 1, 0, -1, 0, 1, 1, 0, 1, 0, 0, -1, 1, -1, 1, -1, 0, 1, 0, 0, 1, 0, -1, 1, 0], [0, 0, 1, 0, 1, 1, -1, 1, -1, 1, 0, -1, -1, 1, -1, -1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, -1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, -1, -1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 1, 1, -1, 1, 1, 1, -1, 1, 0, 1, 1, 0, -1, 0, -1, 1, 0, -1, 0, -1, 0, -1, 0, 0, 1, 1, 0, 0, -1, 1, -1, 0, -1, 1, 1, 0, 1, 0, -1, -1, 0, -1, 1, 0, 1, 0, 1, -1, 1, -1], [1, 0, 1, 1, 0, -1, -1, -1, 0, -1, -1, 1, 0, 0, 0, 1, 1, -1, -1, 1, -1, 0, 1, 0, 1, 1, -1, 0, 0, -1, -1, -1, 1, 1, 1, -1, -1, -1, 0, 1, 1, -1, -1, 0, -1, 1, 0, 0, 1, -1, 1, -1, -1, 1, -1, -1, 1, 1, -1, 1, 1, 1, -1, 1, 0, 1, 0, 0, -1, 0, -1, 1, 0, -1, 1, -1, 0, 1, 0, 0, 1, 0, 1, 1, -1, 0, 1, 0, 1, 0, -1, 0, 1, 0, 1, 1, -1, 1, 1, -1], [1, 1, 1, 1, -1, -1, -1, 0, 1, -1, 1, -1, 1, -1, -1, -1, -1, 0, 1, -1, 1, 0, 1, 1, 0, 0, 0, -1, -1, 0, 0, 1, 0, 1, 1, -1, 1, 0, 1, 0, 0, 1, -1, 0, -1, -1, -1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, -1, 0, 1, 0, 0, 0, 0, 1, 1, 0, -1, -1, 0, -1, 0, -1, -1, -1, -1, 1, 0, 1, -1, 0, -1, 1, 1, 1, -1, 0, 0, 1, 0, 0, 1, 0, 1, 1, 0, -1, -1, -1, 0], [-1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, -1, 0, -1, 1, -1, 1, -1, 0, 1, 1, 0, 1, -1, 0, 0, 1, -1, 1, -1, -1, 0, 1, -1, 0, 1, 0, -1, 0, 1, -1, 0, 1, -1, 1, 0, -1, 0, 1, 0, -1, -1, -1, -1, -1, 1, 0, 0, 1, 1, -1, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, -1, 0, 1, 0, -1, 0, -1, 0, -1, -1, 0, 1, 0, 0], [-1, -1, 1, 1, -1, 0, 0, 0, 1, 0, -1, 0, 1, 1, 0, -1, 0, 0, -1, 1, 1, -1, 1, 1, 0, 1, -1, 1, 0, 1, 0, -1, 1, -1, -1, 0, 0, 1, 1, -1, 0, 0, -1, 1, 0, 1, -1, -1, 1, 1, -1, 0, 0, 0, 0, -1, -1, -1, 0, 1, 1, 0, 0, 1, 0, 0, 1, -1, 0, -1, -1, 1, -1, 1, 0, -1, -1, 0, 1, -1, -1, 0, 1, 0, 0, 1, 1, -1, 0, 0, 0, 0, -1, 0, 1, 0, 1, 0, -1, 1], [-1, -1, 0, 0, -1, -1, -1, 0, 1, -1, -1, 1, 0, -1, 1, 0, 1, 0, 1, -1, 1, -1, 0, 1, 0, 0, -1, 1, -1, -1, 1, 1, -1, -1, 0, 1, -1, -1, 1, -1, -1, -1, 0, 0, 1, 1, 1, 1, -1, 1, 1, 0, -1, -1, 1, 1, 1, 0, -1, 0, 0, 0, 1, -1, -1, -1, -1, -1, 0, -1, 0, 0, 1, 0, -1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, -1, -1, 0, 0, 1, 1, 0, -1, 1, 1, 0, -1, 1, 1], [-1, 1, 1, 0, 1, -1, 1, 0, 0, -1, 0, -1, -1, 0, 0, -1, -1, -1, 1, 1, 0, 1, -1, -1, -1, -1, -1, 0, -1, 0, 0, 1, -1, 1, 1, -1, -1, 0, -1, -1, -1, 0, -1, -1, 1, 1, 0, -1, 1, -1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, -1, 0, -1, 0, 1, 0, -1, -1, 1, 1, 1, 1, 1, 1, 0, -1, -1, 0, 0, 1, -1, -1, -1, -1, -1, 1, 1, -1, -1, -1, 0, 1, 0, 0, 0, -1, -1, -1, 0, -1], [1, -1, 1, 1, 1, 0, 0, 0, 1, 1, -1, 0, 1, 0, 1, -1, 0, -1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, -1, 0, 0, -1, -1, 1, -1, -1, 0, 1, 1, 1, 1, -1, 0, 1, -1, 0, -1, -1, 0, 0, 1, -1, -1, -1, -1, 1, 1, 0, 0, 1, -1, 0, 1, -1, 0, -1, 0, 1, -1, 0, 1, 0, 1, 0, -1, -1, 1, -1, -1, -1, -1, -1, 1, -1, -1, 0, 1, -1, -1, 0, -1, 1, 0, -1, -1, -1, 0, -1], [-1, -1, 0, 1, 1, 0, 1, 0, 0, 1, 0, -1, -1, -1, 0, 1, -1, 0, 1, 0, 1, 0, 1, 1, -1, 1, -1, -1, 1, 0, 0, -1, 0, 0, -1, 1, 1, 0, 1, 0, -1, 1, 0, -1, -1, 1, 0, 0, 1, -1, 0, -1, -1, 1, 0, 0, 1, 0, 0, 0, 0, -1, 0, -1, -1, 0, 1, 0, -1, 1, 1, 0, -1, -1, 1, 0, 0, 1, -1, 1, 1, 0, -1, -1, 1, 0, -1, 1, 1, -1, -1, 1, 1, -1, -1, 1, -1, -1, 1, 1], [0, 1, -1, 0, -1, 0, 1, -1, -1, -1, 0, 1, -1, 1, 1, 0, 1, 0, 1, 1, 1, 1, -1, 1, 1, 0, -1, -1, 1, -1, 0, 0, -1, -1, 0, -1, 0, 1, -1, 0, -1, -1, 0, -1, 0, -1, -1, 0, 0, 0, 1, -1, -1, 0, -1, 0, -1, 0, -1, 1, -1, 0, -1, 0, -1, 1, -1, 0, 1, -1, -1, -1, 1, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0, 1, -1, 1, -1, 1, 1, 1, 1, -1, 1, -1, 1, 0, -1, -1, 0, -1], [-1, -1, 1, 1, 1, 1, -1, -1, 0, 0, -1, 1, -1, -1, 0, 0, 1, 1, -1, 1, 0, 1, 0, 0, -1, 1, 1, 0, -1, 1, -1, 0, 1, -1, 1, 1, -1, 1, 0, 0, 1, -1, 1, 1, 0, 0, 1, 1, 0, -1, -1, -1, -1, 1, 0, 0, 0, 1, -1, 1, 1, 0, -1, 1, 0, 1, -1, 1, 0, 0, 0, 1, 0, 1, -1, 0, 1, 1, -1, 1, 1, -1, -1, 1, 1, 0, 0, 0, -1, 1, 1, 0, -1, 0, -1, 1, 1, 0, 1, 0], [1, -1, 0, 1, 1, 1, 1, -1, 1, 1, 1, -1, 1, 1, 0, -1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, -1, 1, -1, 1, 1, -1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, -1, 0, -1, 0, -1, 0, -1, 1, -1, 1, -1, 1, 0, 1, -1, 1, 0, 1, -1, 1, 1, 1, 1, -1, 1, 0, 1, 1, -1, 0, -1, 1, 0, 0, 1, -1, 1, 1, 1, -1, 1, 0, 0, -1, -1, 1, 1, 0, 1, 1, 1, -1, 1], [-1, -1, 1, -1, 1, -1, 1, 0, 1, 1, 0, 1, 0, 1, -1, -1, 1, 1, 0, -1, 0, 0, 0, -1, -1, 1, -1, 1, 0, 0, 1, 0, 0, -1, 0, -1, 0, 0, 0, 0, -1, 0, -1, 1, 0, -1, 1, -1, 1, 1, 1, 1, -1, 0, -1, 1, -1, 0, -1, 1, -1, 1, 0, -1, 1, -1, 1, -1, 0, -1, -1, -1, 0, -1, 1, -1, 0, -1, 0, 1, 1, -1, 1, -1, 1, 0, -1, -1, -1, 0, -1, 0, 1, 1, -1, 1, 1, 0, 1, -1], [0, 1, 0, 1, 0, 1, 1, -1, 1, -1, -1, -1, -1, 0, 0, 0, 0, 0, -1, 0, -1, 0, 0, 1, 0, -1, 0, 0, 1, 1, -1, 1, -1, 0, -1, 0, -1, -1, -1, 0, 1, 1, 1, -1, 0, -1, 1, 1, 0, 1, -1, 0, 0, -1, -1, 0, 1, 1, 0, 0, -1, 1, 1, 1, -1, 0, 0, -1, 0, 0, 0, 1, -1, 0, 1, -1, 1, 1, 1, 1, -1, 0, 0, -1, 0, 1, 0, -1, 0, 1, 1, 0, -1, 0, -1, -1, -1, -1, 1, 1], [1, -1, 1, -1, -1, 0, 0, 0, 0, -1, -1, 0, 0, 0, 1, -1, -1, 1, 0, 1, 0, -1, 0, -1, 0, -1, -1, 1, -1, -1, 1, 0, -1, 0, 0, -1, 1, 0, -1, 0, 0, 1, -1, 1, -1, 1, 1, 1, 1, -1, 0, 0, 1, -1, 0, 0, -1, 0, -1, 1, -1, -1, -1, 0, 0, 0, -1, -1, 0, -1, -1, 1, -1, -1, -1, 1, -1, -1, 0, 1, -1, 0, 1, 0, 0, -1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, -1, 1], [1, 1, 0, 1, -1, -1, 1, -1, -1, 0, -1, 1, 1, -1, -1, -1, -1, -1, -1, 0, -1, 1, 1, 0, -1, -1, 1, -1, 0, 0, 0, -1, 1, 0, 0, -1, 0, 1, 0, 0, -1, -1, 0, 1, 1, 1, -1, 0, 1, -1, 1, 0, -1, 0, 1, 0, 0, -1, 0, 0, -1, 1, 0, -1, -1, 0, 1, -1, -1, 0, 0, 0, 1, 0, -1, 0, -1, 1, 0, 1, -1, -1, 1, 1, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, 0, 1, 0, 0, 0, 0], [0, 0, 1, 1, -1, -1, 0, -1, 0, 0, 0, -1, -1, 1, 1, -1, 0, 1, 0, 0, 0, -1, 0, -1, -1, 0, -1, 1, 1, 0, -1, 0, -1, -1, -1, 1, 0, -1, -1, 0, 0, 0, 1, 1, -1, 1, 1, -1, 1, -1, -1, 0, -1, -1, 0, 0, -1, 0, -1, -1, 0, -1, -1, 1, 1, 1, 0, 1, 0, 1, -1, -1, 0, 0, 0, 0, 0, 1, -1, 0, 1, -1, 1, 0, 0, -1, 1, -1, 1, 0, 1, 1, 1, 1, -1, 1, 0, -1, 1, 0], [-1, 1, 0, 0, 1, -1, -1, -1, 0, -1, 0, 1, 0, 1, 0, -1, -1, 1, 1, 0, 1, 0, -1, -1, 1, -1, 1, 1, 0, -1, 1, 1, 0, -1, -1, 0, -1, -1, -1, 1, -1, -1, -1, 1, -1, -1, -1, 1, 0, -1, 0, 0, 1, 0, -1, 0, 0, -1, 1, 0, 0, 0, -1, 0, 1, -1, -1, 0, 0, 1, 0, -1, 0, 0, 0, 1, 1, -1, 1, 1, 0, -1, 0, 1, -1, 0, -1, 1, 0, 0, 1, 1, 1, 0, -1, -1, -1, 1, 0, 1], [0, 0, -1, 1, -1, -1, 0, 1, 0, -1, 1, 1, 0, 0, 0, -1, -1, 1, 0, 0, -1, -1, 0, 1, 1, 1, 0, -1, -1, 0, 1, -1, 0, 0, 1, -1, -1, 1, -1, 0, 0, 0, 0, -1, 0, 1, 1, 1, -1, 1, 1, -1, -1, 1, -1, -1, 1, -1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1, 1, 0, 1, 1, -1, -1, 1, -1, 1, -1, -1, -1, 0, 0, 1, -1, 0, 1, 0, 0, -1, 1, -1, 1, 0, -1, -1, -1, 1], [-1, 1, 0, 1, 1, 0, 1, 0, -1, 0, 1, -1, 0, -1, 0, -1, -1, 1, -1, 0, -1, -1, 1, -1, 1, 0, -1, -1, 0, -1, -1, 1, -1, -1, 1, -1, 1, 1, 0, 1, 0, 1, 0, -1, -1, 1, -1, 0, 1, 0, 0, 1, 1, 1, 1, -1, -1, -1, 1, 1, 1, -1, 0, 1, -1, 1, -1, 1, 0, 1, 1, -1, 0, 1, 1, -1, 0, 1, -1, -1, -1, -1, 0, 1, -1, -1, -1, -1, 0, 0, 1, 1, -1, 1, 0, 1, 1, 1, -1, 0], [-1, 0, 1, 1, -1, 1, -1, 0, -1, -1, 0, -1, 1, 1, 0, 1, 1, -1, 0, 1, 0, -1, 0, -1, -1, -1, 1, 0, -1, 0, -1, 0, 1, 1, 1, -1, 1, -1, 0, 0, 0, 0, -1, -1, 0, 1, 0, -1, 1, 1, 1, 1, 0, 1, 1, -1, 0, 1, 0, 1, 1, 1, 0, -1, 1, -1, 1, 0, 0, -1, -1, -1, -1, -1, 1, 1, 1, -1, -1, 0, 0, 0, -1, 0, -1, 1, -1, -1, 1, 1, 0, 0, 1, 1, -1, 1, -1, -1, 1, 1], [0, -1, 0, -1, 1, -1, -1, 1, 0, 0, 1, -1, -1, -1, -1, -1, -1, 1, 1, 1, 0, -1, 1, 0, -1, -1, 0, 0, 0, 0, 1, 0, 1, 0, 0, -1, 0, -1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, -1, 0, -1, -1, -1, 0, 1, -1, -1, 0, 0, 0, 1, -1, -1, 0, 1, 0, 0, 0, 0, 1, -1, 1, 0, -1, -1, 1, -1, 0, -1, -1, -1, -1, -1, -1, 1, 0, 0, 1, 0, 1, -1, -1, -1, 0, -1, 0, 1, -1, 0, 0], [1, -1, -1, -1, 1, -1, -1, -1, -1, -1, 1, 1, 1, 1, -1, 1, -1, 0, 0, -1, 1, 1, 0, 1, 1, 0, 0, -1, -1, -1, 0, -1, 0, 1, -1, 1, -1, 1, 0, 1, -1, -1, -1, 0, 1, 1, -1, 1, 1, 1, 1, -1, -1, 1, 0, 0, -1, 1, -1, 1, 0, 0, 0, 1, 0, 1, -1, -1, -1, -1, -1, 0, 1, 0, -1, 0, 0, 0, 1, 0, 0, -1, -1, 0, -1, 0, -1, -1, -1, 0, 1, 1, -1, -1, 1, 1, 0, 1, 1, -1], [1, -1, 0, 1, 1, 0, 0, 1, 0, -1, 1, 1, 0, 1, 0, 1, -1, -1, -1, 1, -1, -1, -1, -1, 0, -1, 1, -1, 1, 0, 1, -1, -1, 0, -1, -1, 0, 0, -1, -1, 0, 0, 1, 1, -1, 0, -1, 0, -1, -1, 0, 1, 1, 1, 0, -1, 0, 1, 1, -1, 0, 1, 1, 0, -1, -1, -1, -1, -1, -1, 1, 1, -1, 0, 1, 0, 1, 0, 1, 0, -1, 1, 0, 0, 1, 0, -1, 1, 0, -1, -1, -1, 1, 0, 1, 0, -1, -1, 1, -1], [0, -1, 1, 1, -1, -1, -1, 0, -1, 0, -1, 0, -1, 0, 1, -1, -1, 0, 1, -1, 0, 0, -1, -1, 0, 0, 1, 1, 1, 1, -1, -1, 0, 1, -1, 0, 0, 0, -1, 1, 1, -1, 1, 1, 0, 1, 1, 1, 0, 0, -1, 0, 1, 1, 1, -1, -1, 0, -1, -1, -1, -1, 1, 0, 1, 0, -1, -1, 1, -1, -1, 1, 0, -1, 1, 0, 1, 0, 1, -1, 1, 1, 1, 0, -1, 1, 0, -1, 0, -1, 1, -1, -1, -1, 0, -1, 1, -1, -1, -1], [0, -1, -1, 1, 0, 0, -1, 1, 1, -1, 0, 1, 1, 0, 0, 1, -1, 0, 0, 1, -1, -1, 0, -1, -1, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, -1, -1, 1, -1, 1, -1, 1, -1, -1, 1, -1, -1, 1, 1, 1, -1, 0, 0, -1, 0, 1, 0, 1, -1, 1, -1, 1, 1, 0, -1, -1, -1, -1, 1, -1, 0, 1, -1, -1, 1, 1, 1, -1, 0, -1, -1, 0, -1, -1, 1, 0, 1, 1, -1, -1, -1, -1, 1, 0, -1, 0, 1, 1, -1, 1], [-1, 1, 1, -1, 1, 1, 1, 0, 1, 0, -1, 1, 0, -1, -1, 0, -1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, -1, 0, 1, 1, -1, 0, 0, -1, 1, -1, 0, 1, -1, 1, 1, -1, 0, 1, 0, 1, 0, -1, 1, -1, -1, -1, 0, -1, 1, 1, -1, -1, -1, 1, 1, -1, 0, 1, -1, 0, 1, 0, 0, 0, 1, -1, -1, 1, 1, 1, 1, 0, -1, 1, 0, -1, 0, 0, 0, -1, 1, -1, 1, 1, 0, 0], [-1, 0, 0, 1, -1, -1, 0, 1, 0, 0, -1, 0, 0, -1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, -1, 1, -1, 1, -1, 1, 0, 1, 0, 0, 1, 1, -1, 0, 1, -1, -1, 1, -1, 0, 0, -1, 0, 1, 1, 1, 0, -1, -1, 0, 1, 1, 1, -1, -1, 0, 1, -1, -1, 0, -1, 0, 1, -1, 0, 0, -1, -1, -1, 1, 1, 0, 0, -1, 0, 0, -1, 1, 0, 0, 1, 0, -1, 0, -1, 0, 0, 0, 0, 0, 0, 1], [0, 1, 0, -1, -1, 1, 0, 1, 1, 1, -1, -1, 0, 1, 1, -1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, -1, 1, 0, 1, 1, 0, -1, -1, -1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0, -1, 1, -1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, -1, 1, -1, 0, 1, 1, 0, 1, 1, -1, -1, 0, 1, -1, -1, 0, 1, -1, 0, -1, 1, 0, 1, 1, -1, 1, 0, 0, -1, 0, 0, 1, -1, 1, 1, 1, 0, 1, -1, 1, 1, 0], [1, 1, 1, 1, 1, -1, 1, -1, 0, 0, 0, -1, 0, -1, -1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, -1, 1, -1, 0, 0, 0, -1, 0, 1, 1, -1, 0, -1, 0, -1, 0, -1, 1, 1, 1, -1, 0, 1, -1, 0, -1, 1, 0, -1, 1, -1, 1, -1, 0, -1, -1, 0, -1, 1, 1, 1, 1, 1, 1, 0, -1, 0, 1, -1, 1, 1, -1, 1, -1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, -1, 0, 0, -1, 1, -1, -1, -1, 0, 0], [1, -1, 1, 1, -1, 1, -1, 0, -1, 0, -1, 0, -1, 1, 0, 1, 1, -1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, -1, 1, 1, 0, 0, 1, 1, 0, -1, 1, 1, -1, 1, 0, 1, 0, 0, 1, -1, 0, -1, 0, 0, 0, -1, 0, -1, 0, -1, 0, 1, 1, -1, -1, -1, 0, 0, 0, 1, 1, 1, 0, 0, -1, 0, -1, 1, 1, 1, 1, 1, -1, -1, 0, 0, 0, 0, 1, -1, 1, -1, 1, -1, 1, -1, 1], [-1, 0, 0, 0, -1, -1, 1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, -1, 1, 1, 0, -1, -1, -1, -1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, -1, 0, 1, 1, 1, -1, 0, -1, -1, 0, 1, 1, 1, 1, 1, 1, -1, 1, 1, -1, 1, 0, 0, -1, 0, 0, -1, -1, -1, 1, -1, 1, 1, -1, 1, 0, 0, 0, -1, -1, 1, -1, 0, -1, -1, 0, -1, 1, 0, 0, 0, -1, 1, -1, 0, 0, 1, 0, 1, 0, 1, -1], [1, 0, 1, 1, 0, -1, -1, 1, 0, -1, -1, 1, 1, -1, 1, -1, 0, -1, 1, 0, -1, 0, -1, -1, 1, 0, 1, 1, -1, 0, -1, -1, -1, 1, 0, -1, -1, 0, 0, -1, 0, -1, -1, 1, -1, -1, -1, 1, 0, 0, -1, 1, 0, 1, -1, 1, -1, 1, 0, 1, 0, 1, 1, 1, -1, 1, 1, -1, 1, 0, 0, 1, 1, 1, -1, 0, -1, 0, 0, -1, 0, -1, -1, 1, 1, -1, 1, 1, 1, 1, 0, 1, 0, 0, 1, -1, 1, 1, 0, 1], [0, -1, -1, 0, -1, 0, 1, 0, 1, 1, -1, 0, 0, 0, 0, 1, 0, 1, 1, 1, -1, -1, -1, 0, 0, 1, 0, 0, 0, -1, 1, -1, 1, -1, -1, 1, -1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, -1, 0, -1, -1, -1, 1, 0, 0, -1, -1, -1, 0, 0, 1, -1, -1, 1, -1, 0, 1, 0, 0, 1, 0, -1, 0, 0, -1, 0, 1, 0, 0, 0, -1, 0, 0, -1, -1, 0, 1, 1, 1, 0, -1, -1, 0, 0, 1, 1, 1, 1, -1], [1, 0, -1, 1, -1, 0, 0, 1, -1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, -1, 1, 0, 1, 0, 0, 1, -1, -1, 0, 1, -1, -1, 1, 0, -1, -1, -1, -1, 0, 0, 1, 1, 1, 0, 0, -1, -1, 0, 0, 1, 0, 0, 1, 1, 1, -1, -1, -1, 1, 0, 0, -1, 1, 0, -1, 1, 0, -1, -1, 1, 1, 1, 0, 0, 1, -1, 0, 1, 1, 0, 0, 1, 1, 1, 1, -1, 1, 0, -1, -1, -1, 0, 0, 1, 1, -1], [-1, 0, 0, 1, 0, 0, -1, 1, -1, -1, -1, -1, 1, 0, -1, 0, -1, -1, 0, 0, -1, 1, -1, -1, 1, 0, 1, 0, 0, 1, -1, -1, -1, 1, 1, 0, -1, 1, -1, 0, 0, 0, 0, 1, 1, -1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, -1, -1, 1, -1, 0, 0, -1, -1, 0, 0, 0, 1, 0, 1, -1, 1, 0, -1, 0, 0, 1, -1, 0, 1, 0, -1, 1, 1, 1, 1, 1, 1, 1, 1, 0, -1], [0, -1, -1, 0, 1, 1, -1, 1, 0, 0, 1, 1, 1, 0, 1, -1, 0, 1, -1, 1, 0, 1, 1, 0, -1, -1, -1, 1, 1, 0, -1, 1, 0, 1, -1, -1, -1, 1, 1, 1, 1, -1, 0, 0, -1, -1, 0, 0, -1, 0, -1, 0, 1, 0, 0, 0, 1, -1, 0, 1, 0, 0, -1, 0, -1, 1, -1, -1, 0, -1, 0, 1, 1, -1, 0, 0, 1, -1, -1, 0, 0, 1, -1, 0, -1, -1, -1, 1, 0, 1, -1, 0, -1, 0, 0, -1, 1, 0, -1, 0], [-1, -1, -1, 1, 0, 1, 1, 0, 1, 1, -1, 1, 0, 0, 1, -1, 1, 1, -1, -1, 1, 1, 1, 1, -1, 0, 0, 0, 0, 0, -1, 0, 1, 1, -1, 1, 0, -1, 0, -1, 1, 0, -1, -1, 0, 1, 0, -1, 1, -1, -1, -1, 1, 1, 0, -1, 1, -1, 0, 0, 1, -1, 0, 1, 0, 1, -1, 0, 0, -1, 0, -1, -1, 0, -1, 0, 0, 0, 0, 1, -1, 0, 0, 0, 0, 0, 1, -1, 1, -1, 0, 1, -1, -1, -1, 1, -1, -1, 0, -1], [0, 0, 1, 0, 0, 1, 0, 1, 1, 0, -1, 1, 0, -1, 1, 1, -1, -1, -1, 1, 1, 0, 0, 1, 0, 1, -1, -1, 0, 0, 0, 0, 0, 1, 1, 1, 0, -1, -1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, -1, -1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, -1, 1, 1, -1, -1, 1, 0, 1, 0, 0, -1, -1, 1, 1, 1, -1, -1, -1, 1, 1, -1, -1, 1, 0, -1, 1, 0, -1, 0, -1, 1, 1, -1, -1, -1, 1, -1, 0, 1], [-1, -1, 0, 1, -1, 1, -1, 0, -1, 1, 0, 0, -1, -1, -1, 1, -1, -1, 1, 1, -1, 1, 1, -1, -1, -1, -1, -1, 1, 1, -1, 1, 1, 0, -1, -1, -1, 1, 0, -1, -1, 1, 0, -1, -1, 1, -1, 0, 0, -1, 0, 1, 1, -1, 1, -1, -1, 0, 0, 1, 0, 1, -1, -1, 1, 1, 0, 0, 0, 1, -1, 0, -1, -1, 1, 0, 0, 0, -1, 1, 1, 1, 0, 1, -1, 1, -1, 0, 1, 0, -1, 0, -1, 0, -1, -1, -1, 1, -1, 0], [0, 0, 1, 1, -1, 1, -1, -1, 0, 0, -1, -1, -1, 0, -1, 0, 0, 1, 0, 1, -1, 1, -1, 1, -1, 0, 0, 1, 0, 1, 0, -1, 1, -1, 0, -1, 0, 1, 1, 0, 1, 1, -1, 1, 1, 1, -1, -1, -1, 0, 1, 1, 0, -1, -1, -1, -1, 1, 0, 0, 0, 0, -1, -1, -1, -1, 1, -1, -1, -1, 0, 1, -1, -1, -1, -1, 1, 0, -1, 1, 0, 0, -1, 0, 1, 0, 1, 1, -1, 1, 1, -1, 1, 0, -1, -1, 0, 1, 0, -1], [1, -1, 0, 1, 0, 1, 1, 1, 1, 1, -1, 0, 1, 0, 0, 0, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1, 1, 0, 0, 0, 1, -1, 1, -1, 1, -1, 1, 0, 0, 1, 0, -1, -1, 0, -1, 1, 1, -1, 0, -1, 1, 0, 0, 1, -1, 0, -1, 1, 0, -1, 0, 1, 1, 1, 0, -1, 1, -1, 0, 1, 0, -1, 0, 0, 1, -1, 1, -1, -1, 1, -1, 1, -1, 1, -1, -1, 1, 0, 1, 0, 1, -1, 0, 0, -1, -1, 0, 0, -1, 0], [-1, 0, 0, 0, 1, 0, 1, 1, 1, -1, 1, 1, 1, 0, 0, -1, 1, -1, 1, 1, 0, 1, 0, -1, 1, 0, -1, 1, -1, 1, -1, 0, 1, 0, 1, 0, 0, -1, -1, -1, 1, -1, -1, 1, 0, 1, -1, 0, 1, 1, -1, -1, 0, 1, -1, 0, 1, -1, 0, 0, -1, 1, 0, 1, 1, 1, -1, 1, -1, 0, 0, -1, -1, 0, 0, -1, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, -1, -1, 1, 1, 1, 1, 0, 1, -1, 0, 0, 1, 0, -1], [0, 1, 0, 1, 1, 1, 1, -1, -1, -1, -1, 0, -1, 0, -1, 1, 1, 1, -1, 1, 0, -1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, -1, 0, 1, -1, 0, -1, 1, 0, -1, 0, 0, 1, -1, 1, 1, -1, -1, 0, -1, 0, -1, 0, 1, -1, -1, 0, -1, 1, -1, 1, 1, 0, -1, 1, 1, -1, 0, 0, 0, 1, 0, -1, 1, 0, 0, 1, 0, 0, -1, 1, 0, 1, -1, -1, 0, 1, -1, 1, -1, 1, -1, -1, 1, 1, 1, 1, -1, 0], [-1, -1, 0, -1, -1, -1, 0, 0, 0, -1, 0, 0, -1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, -1, 1, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 1, 1, 0, 0, 0, 0, -1, -1, -1, -1, 1, 1, 0, -1, 0, 0, 1, 1, -1, -1, 1, -1, -1, -1, 1, 0, 0, 1, -1, -1, -1, 1, -1, -1, 0, 1, 0, 1, 0, 0, 1, -1, -1, 0, 0, -1, 0, 0, -1, -1, 0, -1, 0, 0, -1, 0, -1, 1, 1, 1, -1, 1, 1, -1], [1, -1, 1, 0, 1, -1, 1, -1, 1, -1, 0, 0, -1, -1, 1, 1, -1, 0, -1, -1, -1, 0, -1, 0, -1, -1, -1, 0, 0, -1, 0, 0, 0, 1, -1, -1, -1, -1, 0, 1, 0, 1, 0, -1, 1, 1, -1, -1, 0, 1, 1, 0, 0, 1, -1, -1, 1, 1, 0, 1, 1, -1, 1, 0, 1, -1, -1, 0, 0, 0, -1, 0, 0, -1, 1, 1, -1, 1, 0, 1, 0, 1, -1, -1, -1, -1, 1, 1, 1, -1, 1, 1, -1, 0, 1, 1, 1, 0, 0, -1], [-1, 0, 0, 0, 1, 1, -1, -1, 1, -1, 1, -1, 0, 0, 1, 0, 0, -1, 1, 1, 0, 0, 0, 1, 0, -1, 1, 1, 0, 0, -1, 1, -1, -1, -1, -1, -1, -1, 0, -1, 0, -1, 0, 1, -1, 0, 1, 1, 0, 1, 0, -1, 1, 1, 0, 1, -1, -1, 1, 0, 0, 0, 0, 1, 1, -1, 0, -1, -1, 1, 0, -1, 0, 0, -1, 1, 1, 0, 1, 1, -1, 0, 0, 0, -1, 1, 1, 1, -1, 0, 1, 1, 1, 0, 1, 0, 0, -1, 0, 1], [-1, 1, -1, 1, 0, -1, -1, -1, 0, -1, 1, 1, 0, -1, -1, -1, -1, 1, 1, -1, 0, 0, 1, 0, 0, -1, 0, -1, 1, 1, -1, -1, -1, 0, 1, 1, 1, -1, 1, -1, -1, 0, -1, 1, 1, 0, 1, -1, 1, 0, -1, -1, 1, 1, 1, 1, 1, 1, 1, 0, 1, -1, 1, 0, 1, 0, -1, -1, -1, -1, 0, 0, 0, 1, 0, -1, 0, -1, -1, -1, -1, 0, 0, 0, 1, 1, -1, -1, 1, 1, 0, 0, -1, -1, -1, 1, 0, 1, 0, 0], [0, 1, -1, 0, 1, -1, 1, 0, 0, -1, 0, 1, -1, 1, 0, -1, 1, -1, -1, -1, 0, -1, 0, 0, -1, 0, 1, -1, 1, -1, 0, 0, 1, 0, 0, 1, -1, -1, -1, 1, 0, 0, 0, 0, -1, -1, 0, 1, -1, 1, -1, -1, 1, 1, 1, 1, 1, -1, 0, 0, 0, -1, -1, 0, 0, -1, 0, 0, 1, 1, -1, 0, 1, -1, 0, 0, 1, 1, 1, 1, -1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0], [0, 0, 0, 1, -1, 1, -1, 1, 0, 0, 0, 1, 0, 1, -1, -1, 0, 1, 0, 0, 1, 1, -1, -1, 0, 1, 0, 1, 1, 0, 0, 0, 1, -1, 1, -1, 0, 0, 1, 1, 0, 0, 1, -1, -1, -1, 1, 1, 0, 1, 1, -1, 1, 0, 1, 1, -1, 0, 0, 1, 0, 1, -1, -1, -1, 0, 1, -1, 1, 0, 0, 1, 1, 1, 0, -1, 0, 0, -1, -1, 1, 0, -1, 0, -1, 0, 1, 0, 1, -1, -1, 0, 1, -1, 1, -1, -1, 0, -1, -1], [0, -1, 0, 1, -1, -1, 1, 1, 1, -1, 0, 0, -1, -1, 1, 1, -1, 1, -1, -1, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, -1, -1, -1, 0, 1, 0, 0, 0, 0, 1, -1, 0, -1, 1, -1, 1, 0, 1, 1, 1, 0, 1, -1, -1, -1, 1, 0, -1, -1, 1, 1, 0, 1, 1, 0, 0, 1, 1, -1, -1, 1, 1, 0, 1, 1, 0, 0, -1, 1, 0, 1, -1, 1, 0, 1, 0, 1, -1, -1, -1, 0, -1, 0, -1, 0, 1], [1, 1, 1, 1, -1, 0, -1, 1, 0, -1, -1, -1, 0, -1, -1, -1, 0, 1, 1, -1, 1, 1, 1, 1, 1, -1, 0, 1, 0, 1, -1, 1, 0, 1, -1, -1, -1, -1, 1, 1, 1, 1, 0, 0, 0, -1, -1, 0, 1, 1, 0, 1, 1, 0, 1, -1, 1, 1, 0, 0, -1, 0, 0, -1, 1, 0, -1, -1, -1, 0, 1, 1, 0, 1, 0, 1, -1, 0, 1, 0, 1, -1, -1, 1, 0, 1, -1, -1, -1, 0, 0, -1, 1, -1, 0, -1, -1, 0, -1, 1], [1, -1, 1, 1, 0, -1, -1, -1, 0, 0, 1, 1, -1, 0, -1, 0, 1, -1, 0, 1, 0, -1, -1, -1, -1, -1, 1, 1, -1, 1, 1, 0, 1, -1, -1, 0, -1, -1, -1, 0, 1, -1, 0, 1, -1, 0, 1, 0, 1, -1, -1, 1, -1, 0, 1, 1, -1, 0, -1, 1, 0, -1, 1, -1, -1, 1, -1, 0, 0, 1, -1, 0, 0, -1, -1, -1, 1, 0, 1, 0, -1, 0, -1, 1, 1, 0, 0, 1, 1, 1, -1, 0, -1, 1, -1, 1, 1, 1, 1, -1], [0, 0, -1, 0, 0, -1, -1, 1, -1, 0, 0, 1, 1, -1, -1, 1, 0, -1, 0, -1, -1, 1, 0, 1, -1, -1, -1, -1, 1, -1, 1, 1, -1, 0, 1, 0, 1, 0, -1, 1, 1, 0, 0, -1, -1, 1, 0, 1, 0, -1, 1, 1, 0, -1, 0, 0, 1, 0, -1, -1, 1, 0, 0, -1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, -1, -1, 1, -1, 0, -1, 0, 0, -1, -1, 1, -1, 0, 0, 0, -1, 1, 1, 0, -1, 1, 1, 0], [-1, 0, -1, 0, 0, -1, -1, 0, 1, 0, 1, 1, 0, 1, -1, 1, 1, 0, 0, 1, -1, -1, 0, -1, 1, 0, 1, 0, 1, -1, 0, -1, 1, 0, 0, -1, 0, 0, -1, 1, 0, 0, 0, 1, 1, 0, 1, -1, 1, 1, 1, 1, 1, 0, -1, 1, 0, -1, -1, 1, -1, -1, -1, -1, 0, 1, 0, 1, -1, 0, -1, 0, 1, 0, -1, 0, 1, -1, -1, 1, 1, 0, 0, 0, -1, -1, -1, 1, 1, 1, 0, -1, -1, 1, 0, 0, 1, -1, -1, -1], [1, 1, 0, 0, 0, 1, 0, -1, 1, 0, 0, 0, 1, -1, 1, 1, 1, -1, 1, -1, 0, 0, 1, 0, -1, -1, 0, 0, 1, -1, 0, 0, -1, -1, 1, 1, 1, -1, 1, 0, -1, 0, 1, 0, 1, -1, 0, 1, 0, 0, 1, 1, 1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 0, -1, 1, 1, 0, -1, 1, -1, 1, 0, 0, 0, -1, -1, 0, 0, 0, -1, -1, 1, 0, -1, 0, -1, 0, 0, 1, 0, -1, -1, -1, 0, 0, -1, 0, -1, -1, 1], [0, 0, 1, 1, 1, 0, -1, -1, 1, 1, 1, 0, -1, 0, -1, 0, -1, 0, 1, -1, 1, -1, 1, -1, -1, 0, 1, -1, 0, -1, 0, -1, 1, 1, -1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, -1, 1, 0, 1, 0, 1, 0, -1, 0, -1, -1, -1, 1, 1, -1, 0, 1, 1, 1, -1, 1, 0, -1, -1, 1, -1, -1, 1, 1, 0, -1, 1, 1, 1, 0, -1, 0, 0, 1, 0, 0, 1, 1, -1, 1, 0, 0, -1, 1, 1, 0], [-1, 1, 1, 0, -1, 1, 1, 1, 0, 1, 1, -1, 1, 1, 0, 0, 1, 0, 1, 0, 0, -1, 0, 1, 1, -1, -1, -1, -1, -1, 0, -1, 1, -1, 0, 1, 0, -1, -1, 0, 1, 1, -1, 1, -1, -1, 1, 0, -1, 1, 1, -1, 0, -1, 0, -1, 1, -1, -1, 0, 0, 0, -1, -1, -1, 0, -1, 1, -1, -1, 1, -1, -1, 1, 1, 0, 1, 0, 0, 0, 0, 0, -1, -1, -1, -1, 0, 0, 1, 0, 0, -1, -1, 1, 1, -1, 0, -1, -1, -1], [-1, 1, -1, -1, -1, 1, -1, 1, -1, 0, -1, -1, -1, 0, 0, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, 0, 1, 1, -1, 0, 1, 1, 1, 1, 1, 0, -1, 1, 1, 1, -1, 1, 1, -1, -1, -1, 1, 0, -1, 0, -1, -1, 0, 0, 1, 0, -1, 1, -1, 1, 1, 1, 1, -1, -1, 1, 1, 1, 1, -1, -1, -1, 0, 1, 1, 1, 0, 0, 0, -1, 0, 1, 0, -1, 0, 1, 0, 1, 0, 1, 1, 0, 0, -1, -1, 1, 0, 0, -1, 0], [-1, -1, 0, 1, 1, 1, -1, 0, 0, -1, -1, -1, 1, -1, 0, -1, 0, 1, -1, 1, 1, 1, -1, 0, -1, -1, 0, 1, 0, -1, 1, 0, 1, -1, 1, 0, 1, 0, 1, 0, 1, 1, -1, -1, 1, 1, 1, -1, 1, 1, 1, 0, 0, 0, 0, -1, -1, 1, 1, -1, -1, 1, 1, 0, 0, -1, -1, -1, -1, 0, -1, 1, -1, 1, -1, 0, 0, 0, -1, -1, 0, 0, 0, 0, 0, -1, 0, -1, 0, 1, -1, 0, 1, 1, -1, 1, 0, -1, 0, 1], [0, -1, -1, 1, 1, -1, 1, 1, 1, -1, -1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, -1, 1, -1, 0, 0, 0, 1, -1, 1, 1, 0, 0, -1, 0, -1, 1, 1, -1, 1, 0, -1, 1, 0, 1, -1, -1, 1, 1, -1, -1, 0, -1, -1, 0, 1, -1, -1, 1, -1, -1, 1, -1, 1, 0, 1, 0, 1, -1, 1, 0, 1, 1, -1, -1, 1, 1, 1, 1, 0, 1, 0, 0, 0, -1, 0, -1, 1, 1, 0, -1, 1, 0, -1, 1, -1, 0], [1, 1, 0, -1, -1, -1, 1, 1, 1, 0, 0, 1, -1, 0, 0, 1, 1, 1, 0, -1, 1, 0, -1, 0, 0, 0, 0, -1, -1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, -1, -1, 0, -1, 1, 0, 0, 1, 1, -1, -1, 0, -1, 0, 1, 1, 0, 1, 1, 0, 1, -1, 0, -1, 0, 0, 1, -1, -1, 1, 1, -1, 0, 1, 1, 1, -1, 0, -1, -1, 1, -1, 0, -1, 0, -1, -1, 1, -1, 1, 1, -1, 0, 0, -1, 0, -1, 0], [0, 1, -1, 0, -1, 1, 1, -1, 0, -1, 1, 0, 1, -1, 0, -1, 0, 1, 0, 0, 0, 1, 1, -1, 0, 1, 0, 0, -1, -1, 0, 1, -1, -1, -1, -1, 1, 1, 1, 1, 0, -1, 0, 1, 1, 1, -1, 0, -1, 1, 1, 0, 1, 1, 0, 1, -1, 0, 0, 0, 0, 1, -1, 0, 1, 1, 0, 1, 0, 0, -1, 0, 0, -1, -1, 0, 0, 1, 0, -1, 0, 1, 0, -1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, -1, -1, 0, 1, -1], [1, 1, 1, -1, 1, 1, -1, -1, -1, -1, 0, 1, -1, 0, 0, 0, 0, 0, 0, -1, -1, -1, -1, 0, -1, -1, 0, 1, -1, -1, 0, -1, -1, 0, -1, 1, 1, 0, 1, 1, 1, -1, 0, -1, 1, 1, -1, -1, 1, -1, -1, 1, 1, 0, 0, 1, 1, -1, 1, -1, 0, 1, 1, -1, 0, 1, 1, -1, 0, -1, -1, 1, 0, 0, 1, -1, -1, 1, -1, 0, 1, 0, 0, -1, 1, 0, 0, -1, -1, -1, 0, -1, 1, 0, 0, -1, 0, 1, 0, 0], [-1, -1, 0, -1, -1, 0, -1, -1, -1, -1, 0, 0, 0, -1, -1, -1, 1, 1, 1, -1, 1, 1, 1, 0, 0, -1, 0, 0, 1, -1, -1, -1, 1, 1, 1, 0, 1, -1, -1, -1, 1, 1, 1, -1, -1, -1, 1, 1, 1, -1, 1, -1, 0, 1, -1, 0, -1, 0, -1, 0, -1, -1, 1, -1, 0, -1, -1, 1, 0, -1, 0, 0, 1, 1, 1, -1, 0, 1, 0, 1, 0, -1, -1, 1, 1, 0, 0, -1, 0, 1, 1, -1, 0, -1, 0, 1, -1, 1, 1, 0], [1, 1, 0, -1, 0, -1, -1, 1, 1, -1, -1, 1, 0, 0, 1, 1, -1, -1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, -1, 1, 0, 0, -1, -1, 0, 0, -1, -1, 1, -1, -1, 0, -1, 0, -1, 0, 1, -1, 1, -1, 1, 1, -1, 1, 1, 0, 1, 0, 0, 0, -1, 1, 0, 1, 0, 1, -1, 1, 0, -1, 0, 1, 1, -1, 1, -1, 0, 1, 0, 0, -1, 1, 1, 0, 1, 0, 0, 1, -1, 1, 0, 1, -1, -1, -1, 1, -1, 0, 0], [-1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 1, 1, 0, 0, 1, -1, 1, -1, 0, 1, 1, 0, -1, 1, 1, -1, -1, 0, 1, 0, -1, -1, -1, -1, 0, 0, -1, 1, 1, 0, -1, -1, -1, 0, -1, 0, 0, 1, 0, 0, -1, -1, -1, 1, 1, 1, -1, 1, -1, -1, -1, -1, -1, 1, 0, 0, 1, 1, 0, 1, -1, 0, 0, 1, 0, -1, -1, -1, 1, -1, 0, 0, 1, -1, 0, 1, 0, 0, -1, -1, 0, -1, 0, 1, 1, -1, 0, 1, 0, -1], [-1, -1, 0, 0, 0, 1, -1, 1, 0, 1, -1, -1, -1, 0, -1, 1, 0, 1, 1, -1, 0, 0, 0, -1, -1, 1, -1, 1, -1, -1, 0, -1, 0, 0, -1, 0, -1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, -1, 1, 1, 1, 0, 1, 0, -1, 0, -1, -1, 1, 0, 1, 1, 0, 0, 1, 1, -1, 0, 1, 0, 0, 1, 0, 0, 1, 0, -1, -1, 1, -1, -1, -1, -1, 0, -1, 0, 0, -1, 0, 1, -1, 1, -1, 1, -1, 0, 0, -1, 0, 0], [0, 1, 0, 0, -1, 1, -1, 1, 0, 0, -1, 0, -1, 1, 1, 0, -1, 1, 1, 1, 1, 1, -1, -1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, -1, 0, -1, -1, -1, -1, 0, 0, 0, 0, 1, 0, 0, 1, -1, -1, 0, -1, -1, -1, -1, 1, -1, 1, -1, 1, -1, -1, -1, 1, 1, 0, -1, -1, 1, 0, 0, -1, -1, 0, 1, -1, 0, 0, 1, 1, -1, -1, 1, 1, 0, 1, 1, -1, -1, -1, 1, 1, 1, -1, 1, 1, -1, 1, 0, 1], [0, 1, -1, 1, 1, 0, 0, -1, -1, 0, -1, -1, 1, 0, -1, 1, 1, 1, 0, 1, -1, 1, 0, -1, 0, 0, -1, 0, 1, 1, 0, 1, 0, 0, -1, -1, 1, 0, 0, 1, -1, -1, 0, -1, 0, 1, 1, 0, 1, 1, -1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 0, 1, -1, -1, -1, 1, 0, 0, -1, 1, -1, 1, 0, 0, -1, 1, 1, 0, 0, 0, 0, -1, 1, 0, -1, -1, 0, 0, -1, -1, 1, -1, 1, 0, 0, 0, 1, 1, 1, 1], [0, 1, 0, 0, 1, -1, 1, -1, 0, -1, -1, 0, -1, -1, 1, 1, 1, -1, 1, 1, 0, -1, 0, -1, 1, -1, -1, 1, 1, -1, -1, 0, -1, -1, 0, 0, 1, -1, 0, 0, -1, 0, -1, 0, -1, 1, 1, 0, 0, 0, 1, -1, 1, 0, 1, -1, 0, 0, -1, -1, -1, 1, -1, -1, 0, 1, -1, -1, 1, -1, 1, -1, 1, -1, 1, 0, -1, 1, 1, -1, 1, 1, 0, -1, 0, 0, 1, 1, 0, 0, 1, -1, -1, 1, 0, 0, 0, 0, 0, 0], [1, 0, -1, -1, 0, -1, 1, 1, 1, 1, 1, -1, 0, -1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, -1, 1, -1, -1, -1, -1, 0, -1, -1, -1, -1, 0, -1, -1, 1, 0, 1, 0, -1, -1, 0, -1, -1, 1, 0, 1, -1, -1, 1, 0, -1, 1, 0, 1, -1, -1, 1, -1, 1, 0, 1, 0, 1, 1, 0, 1, 1, -1, 1, 0, 1, 1, 1, -1, -1, 1, 0, 1, 1, 0, 0, 0, 1, 0, -1, 1, -1, 1, 1, 1, 1, 1, 1, 1, -1, -1], [-1, 1, -1, -1, 1, -1, 1, -1, 1, 1, -1, 0, 0, 1, -1, -1, -1, 0, 1, -1, 0, 1, 1, 1, 0, 1, 0, 1, 0, -1, -1, -1, 0, 1, -1, 0, 1, 1, -1, 1, -1, 0, 0, 0, 0, -1, -1, -1, -1, -1, 1, 1, -1, 1, -1, -1, -1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 1, 1, -1, 1, 1, 1, 0, 1, 0, -1, 1, -1, -1, -1, 0, -1, 0, -1, 0, -1, 0, -1, 1, 1, -1, 1, -1, 0, 1, 1, 1, -1, -1, 1], [-1, 1, -1, 0, 0, 1, 1, 1, 0, 1, -1, 1, 0, 1, -1, 1, 1, 0, -1, -1, -1, 0, 0, 1, 0, 1, 0, 1, 1, -1, 1, 1, 1, 0, -1, 0, -1, 1, 1, 0, -1, -1, 1, 1, -1, 1, 1, -1, -1, 1, -1, 0, 1, 0, 0, -1, -1, 1, 1, 0, 1, -1, 0, 1, -1, 1, 1, 1, 1, -1, 1, 1, 1, -1, 1, -1, 0, -1, -1, -1, 0, -1, 0, -1, 0, 1, 0, 1, 0, 0, -1, -1, 0, 0, -1, 1, -1, 0, 0, -1], [0, 1, -1, -1, -1, -1, -1, -1, 1, 0, 1, 0, 0, -1, 1, -1, 1, 0, -1, -1, 0, -1, 0, 0, -1, 0, 1, 1, 1, -1, 0, 0, -1, 1, -1, 0, 1, 0, 0, 0, 0, 1, -1, 0, 1, -1, 0, -1, 0, 0, -1, -1, 0, -1, 0, 1, 1, 1, -1, 1, -1, 1, 1, -1, 1, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, 0, 0, -1, -1, -1, -1, -1, 1, -1, -1, -1, 1, 0, -1, -1, 1, -1, -1, -1, 1, 1, 0, -1, -1, 0], [-1, -1, 0, 0, -1, 0, 1, -1, 0, 0, -1, -1, 0, -1, -1, 1, -1, 0, 0, -1, 0, 1, -1, -1, -1, 0, 0, -1, -1, 0, -1, 0, 1, 1, 1, 1, -1, -1, -1, -1, 1, 1, 0, 0, 0, -1, 0, -1, -1, 0, 1, 1, 1, 1, 1, 1, 1, -1, 1, -1, -1, 0, 0, 1, 1, 1, 1, 0, -1, 0, 1, 0, -1, 0, -1, -1, -1, 1, -1, -1, 0, -1, 1, 1, 0, -1, 1, 0, 1, 1, 0, -1, -1, 1, -1, -1, 0, 0, 1, -1], [1, 0, -1, 0, 1, -1, -1, 1, 0, 0, 0, -1, 1, 0, 0, 1, 0, -1, 1, 1, 0, 0, 1, -1, 0, 1, 1, 0, -1, 0, -1, 1, 1, -1, -1, 0, -1, -1, 1, 1, 1, 0, -1, -1, 0, 0, 1, 1, 0, 0, -1, 0, 1, -1, 0, 0, 0, -1, 0, 1, 0, 1, 1, -1, 1, -1, 0, 0, 1, -1, 0, 0, 0, 0, 0, 1, 0, 1, -1, 0, 0, 0, 0, -1, 1, 0, -1, -1, -1, 0, 0, 1, 0, -1, 0, 1, -1, 0, 0, -1], [-1, 0, 1, 0, 0, -1, 1, 0, 1, 0, 0, -1, -1, 1, 0, -1, -1, 0, -1, 0, 1, 1, -1, -1, -1, 0, 1, 0, -1, 0, 0, 0, 1, 1, 1, 0, 1, 1, -1, -1, -1, 0, -1, 0, 0, 0, -1, 0, 0, 1, -1, 1, 1, 0, 1, -1, 1, -1, 1, 1, -1, 1, -1, 0, -1, 1, 1, 1, 0, 0, -1, -1, 1, 1, 1, 0, 1, 0, -1, 1, -1, 0, 0, -1, 0, 1, -1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0], [0, -1, 1, -1, -1, -1, 1, -1, 1, -1, 0, -1, 1, -1, 1, 1, 1, 0, -1, 0, 1, 1, -1, 1, 1, 0, 1, -1, 1, -1, 1, 0, -1, 1, 1, 1, 0, -1, -1, 1, 0, -1, 1, -1, -1, -1, 1, 1, 0, 1, 0, -1, 1, 1, 1, -1, 1, -1, 0, -1, 1, 1, 1, 1, 0, 0, 0, -1, -1, -1, 0, 0, 0, -1, 1, 0, 0, 0, 1, 0, 0, 0, -1, -1, 1, 0, 1, 1, -1, 1, 1, -1, 0, 0, -1, -1, 0, -1, -1, 1], [-1, 1, 1, -1, 1, 1, 1, 0, 0, 1, -1, 1, -1, 0, -1, -1, 1, 1, 0, -1, -1, -1, 1, 1, 0, -1, 0, 0, 1, 0, 1, 1, 0, -1, -1, 1, 0, -1, 0, -1, 1, 1, -1, 0, 1, -1, -1, 1, -1, 0, 1, 1, 1, 0, -1, 0, 1, 1, -1, 1, 1, -1, -1, 0, -1, 0, 1, 0, 1, -1, 0, -1, 0, 1, 1, -1, 0, 1, -1, 0, 0, 0, 0, 1, -1, -1, -1, -1, -1, 0, 1, 0, 1, 1, -1, -1, 1, -1, 0, -1], [-1, 1, -1, 0, 1, 1, 0, -1, 1, 1, -1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, -1, -1, 1, -1, 1, 0, 0, 0, 0, 0, 0, -1, 1, 1, 1, 1, 1, 1, -1, 1, 0, -1, 0, -1, 1, 1, 1, 0, -1, 0, -1, 1, 1, -1, -1, -1, 0, -1, 1, 1, 0, 0, -1, 1, -1, -1, 0, 1, -1, 1, 1, 1, -1, 1, -1, 0, 1, 0, -1, -1, -1, 0, -1, 1, -1, -1, -1, 1, 1, 0, 1, 0, 1, -1, 1, -1, 1], [1, -1, 0, 0, -1, 1, 0, -1, 1, 1, -1, -1, 1, -1, 0, -1, -1, 1, 1, -1, 0, -1, -1, -1, 1, 0, 1, -1, 0, 1, -1, -1, 1, -1, 0, 0, 0, 0, -1, 0, 1, -1, -1, 1, -1, -1, -1, 0, 0, 1, -1, -1, -1, 1, 0, -1, 0, 0, 0, 0, 1, -1, 1, 0, -1, -1, 0, 0, 1, 0, -1, 0, 1, 1, 1, 1, 1, 0, -1, 0, -1, -1, -1, 1, 1, -1, -1, 0, 1, 1, 0, 0, 1, -1, 1, -1, 0, 0, 0, -1], [-1, -1, 0, 0, 0, 1, 1, 1, 1, -1, 0, 0, 0, 0, 1, 1, 1, -1, -1, 0, 1, 1, 0, 0, -1, 0, -1, -1, -1, 1, 1, 0, 0, 0, -1, 1, 0, -1, 1, -1, 1, 1, -1, 1, 0, -1, -1, -1, 1, 1, 1, -1, 1, 1, 1, -1, -1, 0, 1, 1, -1, -1, 0, -1, -1, -1, 0, 1, 0, 0, 1, -1, 1, -1, -1, 1, -1, 0, 0, 0, 0, -1, 0, -1, -1, -1, 1, 0, 1, 0, 0, -1, 0, -1, -1, -1, -1, 0, -1, 0], [0, 0, 0, -1, 1, -1, -1, -1, -1, 0, 0, -1, 1, 0, -1, 0, 1, -1, 1, 1, -1, 0, 1, 1, -1, 1, -1, 1, -1, 0, 1, 0, -1, 0, 0, -1, 1, -1, 1, 0, -1, 1, -1, 0, 1, 1, -1, 1, -1, -1, 0, 1, 1, 1, 0, -1, 1, 1, -1, -1, 0, 0, 0, 0, -1, 0, -1, -1, -1, -1, -1, 1, 0, -1, -1, 0, -1, 0, 0, 0, 1, -1, 0, 1, -1, 1, -1, -1, 1, -1, -1, 1, 0, 0, -1, -1, -1, 1, 0, 1], [1, 0, 0, 0, -1, 0, 1, -1, 1, -1, -1, 0, 0, 1, 0, -1, 0, 1, -1, 1, 1, -1, 0, -1, -1, 1, 1, -1, -1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, -1, -1, -1, 1, 1, 1, 1, 0, -1, 0, 1, 0, -1, -1, 0, 0, -1, 0, -1, 1, 1, 1, 0, 1, 1, -1, 0, -1, 1, 1, 0, 1, 0, 0, 0, 1, 1, -1, -1, -1, 1, 1, -1, -1, -1, -1, 1, 1, -1, 0, 1, 0, -1, 1, 0, 1, -1], [-1, -1, 1, 1, 1, -1, 0, -1, 1, 1, -1, 1, 0, 1, -1, 0, 1, -1, 0, 0, -1, 0, 1, 0, 1, -1, 1, -1, 1, -1, 0, -1, 1, 0, -1, 0, -1, -1, 1, 1, -1, 0, 1, 0, -1, -1, 1, -1, -1, 0, 1, -1, -1, 0, 0, -1, -1, -1, 0, 1, 0, 1, -1, 1, 0, -1, -1, -1, 1, 1, 0, 1, 0, 1, 0, 1, -1, 1, 1, -1, 0, 1, 1, 1, 0, -1, 0, 1, 1, 0, 1, -1, -1, 1, 0, 0, 0, 1, 1, 0], [-1, -1, 0, 1, -1, -1, -1, 1, -1, 0, -1, 1, -1, -1, 0, 1, -1, 0, -1, 1, 1, -1, -1, 0, -1, -1, 1, 0, -1, 1, 1, -1, 0, -1, 1, 1, -1, -1, 0, 0, 1, 1, 0, 1, 0, 0, -1, 1, -1, 1, -1, 0, 0, 1, -1, 1, -1, 0, -1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, -1, 1, 0, 0, 1, -1, 0, 0, -1, -1, 1, 1, -1, -1, 0, 1, 1, -1, -1, 0, 0, 1, -1, 1, -1, 1, 1, -1, 1, 0, 1], [0, 0, 1, 0, 1, -1, 0, -1, 0, -1, 0, 1, -1, 0, 1, -1, -1, -1, 1, 0, 0, 1, 1, 1, 0, -1, 0, -1, 0, 1, 0, -1, -1, 0, 1, 1, 0, 1, 1, -1, -1, 1, -1, 1, -1, 0, 0, 0, -1, 1, -1, -1, 1, -1, 1, 0, -1, -1, -1, 0, 0, -1, 1, 1, 1, 1, -1, -1, 0, 0, 0, -1, -1, 0, 1, 1, 0, 1, -1, 1, 1, 1, 1, 0, -1, -1, 0, 0, -1, -1, -1, 1, 1, 0, -1, -1, -1, 0, 0, -1], [1, -1, -1, 0, 0, 0, 1, 0, 1, -1, 1, -1, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0, -1, 0, 0, 1, 0, 1, 0, 1, 1, -1, 1, 0, -1, -1, 0, 1, 1, -1, 0, 1, 0, 0, 0, 0, 0, 0, -1, 1, -1, -1, -1, 1, 1, 1, 1, 1, 1, -1, -1, 0, 1, -1, -1, 1, -1, -1, 0, 0, -1, 1, -1, 0, -1, -1, -1, 0, -1, 0, -1, -1, 1, 0, 1, 0, 1, -1, 1, 0, 1, -1, -1, -1, 1, 0, 1, 1], [1, -1, 1, 0, -1, 1, 1, 0, -1, 1, -1, -1, -1, 0, -1, -1, 1, 0, 1, -1, -1, -1, 1, -1, -1, 0, -1, 1, 0, -1, 1, -1, 1, -1, 0, 0, 0, 1, 1, -1, 0, -1, 1, -1, 1, -1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 0, 0, -1, -1, 1, -1, 0, 1, 0, 0, 1, -1, 0, 1, -1, -1, 1, 1, 0, 0, 1, -1, -1, -1, 0, -1, 0, 0, 0, -1, 1, 0, -1, 1, 1, 0, -1, -1, -1, 0, 0, 0, 0, 0, 1], [-1, -1, 0, 0, -1, 1, -1, -1, -1, 0, 0, 0, 0, -1, 1, 0, 0, 1, 1, 1, 0, 1, 0, -1, 0, -1, 1, -1, 1, 0, -1, 0, 0, 1, 1, -1, 1, 0, -1, 1, -1, -1, 1, -1, 0, 0, 1, 0, 1, 0, 1, -1, -1, -1, 0, 0, 1, 1, 1, -1, 0, 1, -1, 1, 1, 0, 0, 1, 1, 1, -1, 0, 1, -1, -1, 1, 1, -1, -1, -1, 1, 1, -1, 0, 1, 0, -1, 1, 1, 1, 0, -1, 1, 0, 0, 1, 0, -1, -1, 0], [0, 1, 1, -1, 1, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, -1, 0, 1, 0, 1, 0, -1, 0, -1, 0, -1, -1, 0, -1, 1, 1, -1, -1, 0, 1, 1, 0, 0, 0, 1, -1, -1, -1, 1, 1, 1, 0, -1, 0, 0, 0, 0, 1, -1, 1, 0, -1, 0, -1, -1, 1, -1, 1, 1, -1, 1, 0, 1, 0, 1, 0, -1, 1, -1, 0, -1, 0, -1, 1, 0, -1, 1, -1, 0, -1, 1, -1, 0, -1, -1, 0, 0, 1, 1, 0, 0, 0, 0, 0], [1, 1, 1, -1, 1, -1, 0, -1, -1, 1, -1, -1, 1, 0, -1, 0, 0, -1, 1, 0, -1, -1, 0, 0, 0, 1, 1, -1, 1, 1, 1, -1, 0, 1, -1, 1, 0, -1, 0, 1, 0, 1, 0, 0, -1, 0, -1, 1, -1, -1, 0, -1, -1, 0, 0, 1, -1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, -1, 0, 1, 0, 1, -1, -1, -1, 1, 0, -1, 0, 0, 1, 0, 0, 1, -1, 0, 0, 0, -1, -1, -1, -1, 0, -1, -1, 1, 0, 1, 0, 0], [-1, 0, -1, 1, 1, 1, 1, 0, 1, 0, 0, -1, -1, -1, 0, -1, -1, -1, -1, 1, 1, 0, -1, 0, 0, -1, 1, -1, 0, 0, -1, 1, 0, 0, -1, -1, -1, 1, -1, -1, 1, -1, -1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, -1, 0, 1, 1, -1, 1, 0, -1, -1, -1, 0, -1, -1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, -1, -1, -1, 1, 1, -1, 1, 0, -1, 1, -1, 1, 1, 1, -1, 0, 1, -1, 1, 1], [1, 0, -1, 0, 1, 1, -1, 0, -1, -1, -1, 1, 1, -1, 1, 1, 0, 0, 0, 0, 1, 0, 1, -1, 1, 0, -1, 0, 1, 1, 0, 1, -1, 1, 1, 0, 0, -1, -1, 1, -1, -1, 1, 0, 0, 0, -1, -1, 0, 0, 1, 1, -1, 0, 1, 1, 0, -1, 1, 0, 0, -1, -1, -1, -1, -1, 1, 0, -1, 0, 1, 1, 0, -1, 1, 1, 0, 0, 1, 1, 1, 0, 0, -1, -1, -1, 1, 0, -1, -1, 1, 0, -1, -1, -1, -1, -1, 1, -1, 0], [0, 0, 1, 0, 0, 1, 1, 0, -1, -1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, -1, 0, -1, 1, -1, 1, 1, -1, 1, 0, 1, -1, -1, 0, 1, 1, -1, 0, -1, 0, 1, 0, 1, 1, 0, 1, 1, 0, -1, -1, 0, 1, 0, -1, 1, 0, 1, -1, 0, 0, 0, 1, 0, 1, -1, 1, -1, 1, -1, 1, 1, 1, -1, -1, 1, 0, 1, -1, 1, -1, 1, 0, 1, -1, 1, -1, 1, 0, 1, -1, -1, 1, -1, 0, 1, -1, 1, 1], [1, -1, 0, 1, 1, -1, -1, -1, -1, 0, -1, 0, 0, -1, 1, -1, 0, 0, -1, 0, -1, 0, 0, 1, 0, 0, 0, 1, 1, 0, -1, -1, 1, 0, 0, -1, -1, 0, -1, -1, -1, 0, -1, -1, 1, 1, 1, 0, 0, 1, -1, -1, 0, 0, 0, 0, -1, 0, -1, -1, 0, -1, 0, -1, 1, -1, 1, 0, -1, 0, -1, -1, 1, 0, -1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, -1, 1, 1, -1, -1, 1, 0, 1, 0, -1, 1, 1, 0, 0], [0, 0, -1, 1, 1, -1, -1, -1, -1, 0, 0, 0, 0, 1, -1, -1, 0, 1, 1, 0, 0, 1, 1, 0, 1, -1, -1, -1, -1, 1, -1, -1, 1, -1, 1, 0, 0, 1, 0, 0, -1, -1, 0, 0, -1, 0, -1, 1, -1, 0, 1, -1, 0, 1, 1, -1, 0, 1, 0, -1, -1, 1, 1, -1, 1, 1, 1, 0, -1, 0, 1, -1, -1, -1, 1, 1, 1, -1, 0, -1, 0, 1, -1, 0, 0, -1, 1, -1, -1, -1, 0, 0, -1, -1, 0, -1, 0, 1, 0, -1], [0, -1, 0, 0, -1, 0, -1, 0, -1, 1, 0, -1, 1, 1, 1, 1, -1, -1, 1, 1, 0, 1, 1, 0, 1, -1, 1, 1, -1, 0, -1, -1, 1, -1, -1, 1, 1, 0, 1, 0, -1, -1, 1, 0, 1, 0, -1, 1, 0, 0, -1, 0, 1, 1, 0, -1, 0, 0, -1, 1, 1, -1, 0, -1, 0, 0, -1, 1, 1, -1, -1, 1, -1, 0, 1, 1, -1, -1, 0, 1, -1, 1, 0, 0, 0, 0, 1, -1, -1, 0, -1, 0, -1, 0, 1, -1, 0, 1, 0, 0], [0, -1, 1, -1, 1, 1, -1, 1, 1, -1, 1, -1, -1, 0, 0, 1, -1, 1, 1, -1, 0, 1, -1, 1, 1, 1, 1, -1, -1, -1, 1, 0, -1, -1, -1, 0, -1, 1, 0, 0, -1, 0, 1, -1, 1, 0, -1, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 1, -1, 0, -1, 1, 0, -1, 0, -1, 1, 0, -1, 0, -1, 0, -1, -1, 0, 1, 1, -1, -1, 1, 0, -1, 0, 0, -1, 0, 0, 1, 0, -1, 1, 1, -1, -1, -1, 0, 0, 0], [0, 0, 0, 1, 1, 1, 1, -1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, -1, 0, 0, 1, 1, 0, 0, 0, 0, 0, -1, 0, 1, 0, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1, 0, 0, -1, 0, 0, 0, -1, 1, -1, -1, 0, 0, 0, 0, -1, 0, -1, 1, -1, 1, 1, -1, 0, -1, 0, -1, -1, 0, -1, 1, 1, 0, -1, -1, -1, 1, 0, 1, 1, 1, 0, 1, 1, -1, 0, 0, -1, -1, 1, 0, -1, 1, -1, 0, 1, -1], [1, 1, 1, 1, -1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, -1, -1, 0, 0, -1, 0, 0, 1, 1, -1, 1, 1, 0, 0, -1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, -1, -1, -1, -1, 0, 0, -1, 0, 1, 1, -1, 1, -1, 0, -1, -1, -1, 1, 1, 1, 0, 0, 0, -1, -1, 1, -1, 0, 0, 0, -1, -1, -1, 1, 0, 1, 1, 1, -1, 0, -1, 1, 1, 1, 0, 1, 0, -1, 0, -1, 0, 0, 0, 1, 1, 0, -1, -1, 0, -1], [1, 1, 1, -1, 0, -1, -1, 0, 1, 0, -1, -1, 0, 0, -1, 1, 1, 1, 1, -1, -1, 1, 1, 0, -1, -1, -1, 1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, -1, -1, 0, -1, -1, 1, 0, 0, -1, 0, 0, 1, 0, -1, -1, 1, 1, 1, 0, -1, 0, -1, -1, 0, 1, 1, -1, 1, 1, -1, -1, 1, 0, 1, 0, -1, -1, 0, 1, 0, 1, 1, 0, 1, -1, -1, 0, 1, 1, 0, -1, -1, -1, 1, -1, -1, 0, 0, 0, 1, -1, 1], [1, -1, -1, -1, -1, 1, 1, 1, -1, -1, 0, 0, 0, 1, -1, 0, 1, 1, -1, -1, 0, -1, 0, -1, -1, 1, -1, -1, -1, 0, 0, -1, 0, -1, 0, 0, -1, 0, 1, 1, 0, -1, -1, -1, 0, 0, 0, 0, 1, 0, -1, 1, -1, 0, -1, 0, 1, -1, 1, 1, 0, -1, 1, -1, 0, 1, 0, -1, -1, 1, 1, 0, -1, 1, 1, 0, 0, -1, 1, -1, 1, 0, -1, -1, -1, 1, 1, 1, -1, -1, 0, -1, 0, 0, 1, 0, 0, 1, 1, 1], [1, 0, 0, 0, 0, -1, -1, 1, -1, 0, 1, 0, 0, 1, 0, -1, 0, 1, 0, -1, 1, 0, -1, 0, -1, -1, 0, -1, 0, 0, -1, 0, -1, 0, -1, 0, 0, 1, -1, 1, 0, 0, -1, 0, 0, 0, 0, 0, -1, 1, 0, 0, 1, 1, -1, -1, 1, 1, 1, -1, -1, 0, -1, 0, 0, 1, -1, 0, 0, 0, -1, 0, 0, -1, 1, 1, 0, 0, 0, 0, -1, -1, -1, 1, 0, 0, 1, 0, 1, -1, 1, 0, 0, -1, -1, 0, -1, -1, -1, -1], [-1, 0, 1, 1, -1, -1, 0, 0, 1, -1, -1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, -1, 0, 0, -1, 1, 1, 0, -1, -1, 1, 1, 1, 0, -1, 0, 1, 1, 0, -1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, -1, 1, 1, 1, 1, -1, -1, -1, -1, -1, 0, 0, -1, 0, -1, 1, -1, 0, 1, 1, -1, 0, -1, 0, -1, 1, -1, -1, 0, 0, 1, -1, 0, 0, -1, 1, -1, 0, -1, 0, 1, 1, -1, 1, 0, 1, 1, 1], [1, 1, 0, 0, -1, -1, -1, -1, 0, -1, 0, 1, 0, 0, 0, -1, -1, 1, -1, -1, 0, -1, -1, 0, 0, -1, -1, -1, 0, 1, -1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, -1, 1, -1, -1, -1, 0, -1, -1, -1, -1, 1, -1, 1, -1, -1, -1, 1, 1, -1, 1, -1, -1, 0, -1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, -1, 1, 0, -1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, -1, 0, -1, 0, 0, 1], [-1, -1, 1, 0, 1, 1, 1, -1, 0, 0, 1, 0, -1, 1, -1, 1, -1, -1, 0, 1, -1, 0, 0, -1, -1, 1, 0, 0, 1, 1, 0, 0, -1, 1, 0, -1, 1, -1, 0, -1, 0, 0, 1, 0, 1, -1, 1, 0, 1, 0, 1, 0, 0, -1, -1, -1, -1, 1, 0, 1, -1, 1, 0, 1, -1, -1, 0, -1, -1, 0, 1, -1, 0, -1, -1, 1, 0, 0, 0, 1, 1, 0, -1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, -1, 1, 0, 1, 1], [1, 0, 1, -1, 1, -1, -1, 0, 1, 1, 1, -1, 0, -1, -1, 1, 0, 0, 1, -1, -1, 0, -1, 1, -1, -1, 1, 0, -1, -1, 1, 0, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 0, 0, -1, -1, 0, -1, -1, 0, 0, 0, -1, 0, 0, 1, -1, 0, -1, 1, -1, 1, 0, 1, 1, -1, 0, 1, 1, 0, -1, 0, -1, -1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, -1, 0, 0, 0, 0, 1, -1, 1, 1, -1, 0, 1], [-1, -1, -1, 1, -1, 0, 1, 1, 1, 0, 1, 0, -1, 0, 0, 1, 1, 0, 0, 1, -1, 0, -1, -1, 0, -1, -1, 0, -1, 0, -1, 0, 1, 1, 1, 0, 1, 1, 1, 0, -1, -1, 1, -1, 1, 0, 1, -1, 1, 1, 1, -1, 1, 0, 0, 1, -1, 1, -1, 0, 0, -1, 0, 0, 1, -1, 1, 1, 0, -1, -1, -1, -1, -1, -1, -1, 1, 1, 0, 1, 0, -1, 0, 1, -1, 1, 1, -1, 0, 1, 0, 0, 0, 0, 0, 0, -1, 0, 0, -1], [-1, -1, -1, 1, -1, 1, 1, 0, 0, 1, 0, -1, 1, 1, 0, -1, 0, 0, 1, 1, -1, 0, -1, 0, 1, 0, 1, -1, 0, 0, 0, 1, 0, 1, -1, 1, 0, 0, 0, -1, 0, 0, -1, 0, -1, -1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, -1, -1, 1, 1, -1, 1, -1, -1, 0, 0, 0, 1, 1, -1, -1, 0, -1, 0, 1, -1, -1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, -1, 0, 1, 0, 0, 0, -1], [-1, -1, 1, 1, -1, 0, 0, 1, 1, 1, 0, 1, -1, -1, -1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1, 1, -1, -1, 0, -1, 0, -1, 0, 1, 0, -1, -1, -1, 0, -1, 1, -1, 1, 0, 1, 1, 0, -1, -1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, -1, 1, -1, -1, -1, 0, -1, 1, 0, -1, 1, -1, 0, 0, 0, 1, 1, 0, 0, -1, 1, -1, 1, 0, 0, -1, 1, -1, 1, 1, 0, -1, -1, -1, 1, -1, -1, -1, 1], [-1, -1, -1, 1, -1, 0, 0, -1, -1, 0, 0, 0, 0, -1, -1, 0, 1, -1, 0, -1, -1, 0, 1, 0, -1, -1, 1, 1, 0, -1, 0, 1, -1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, -1, 1, -1, 0, -1, 0, -1, -1, 1, -1, 0, 1, -1, 0, 0, 0, -1, 0, 0, 1, -1, -1, -1, 0, 1, -1, 1, 1, -1, 0, -1, 0, 0, 1, 1, 1, 0, 1, -1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, 1, 0, -1, -1, 0, 0, -1], [-1, 1, -1, -1, 1, 0, -1, 0, -1, -1, 0, -1, 1, 1, 0, 0, 1, 0, 1, -1, 0, 0, 0, 1, -1, 0, -1, 1, 0, -1, 0, -1, 1, 0, -1, 0, -1, 0, 1, 0, 0, 0, 1, 0, 0, -1, 1, 0, 0, -1, 0, -1, 0, -1, -1, 1, -1, 0, 0, 1, -1, -1, 0, 0, 1, 0, -1, 0, 1, 0, 0, 0, -1, 0, -1, 0, 0, 0, 1, 0, 1, -1, 1, 0, 0, 0, -1, -1, 0, 1, -1, 1, -1, -1, -1, -1, 1, 0, -1, 1], [-1, -1, 0, 1, 1, 1, 1, -1, 0, 1, 0, -1, -1, 1, 1, -1, 0, -1, 1, 0, 0, 0, -1, 0, 0, -1, 1, 1, 0, 0, 1, 0, 0, 0, -1, 0, -1, 0, 0, 0, 1, -1, 1, 1, 0, 1, 0, 0, -1, 1, 1, 0, -1, 0, -1, -1, -1, 0, 1, 0, 0, -1, -1, -1, -1, 0, 1, -1, 0, -1, -1, 1, 0, 0, -1, 1, 0, -1, 0, -1, 1, 0, 1, 1, 0, 0, 1, 0, -1, 0, -1, -1, 1, -1, 1, -1, 1, 0, 1, 1], [0, 1, -1, 1, -1, -1, 0, 1, 1, 1, -1, 1, -1, -1, 0, 0, 1, -1, 1, 1, 1, -1, 0, 0, 1, 0, -1, 1, 1, -1, 0, 0, 0, 0, -1, 1, -1, 0, -1, 0, -1, 0, -1, 0, -1, -1, 1, 1, 0, 1, -1, 0, 1, -1, 1, -1, 1, 0, 0, 0, -1, 1, 1, 1, 1, 1, 0, -1, 1, -1, 0, -1, -1, -1, 1, 1, -1, 0, 0, 0, 1, 0, 0, 0, -1, 0, 1, 0, -1, 1, -1, 0, -1, -1, -1, 0, 0, 1, 1, -1], [0, -1, -1, 1, 0, 0, 1, 1, 0, -1, 1, 1, 0, -1, 1, 1, -1, 0, 0, 1, 1, -1, 0, 0, 0, 1, 0, 0, 0, 0, 1, -1, 0, 1, -1, 1, 1, 1, -1, -1, 1, -1, -1, -1, 0, 1, 1, 1, -1, -1, 1, 1, 0, -1, -1, 1, 1, 0, -1, 0, 0, 1, 0, -1, 0, -1, 1, 1, 0, -1, 1, 0, -1, 0, 0, 0, 1, 1, 0, 0, 0, -1, -1, 1, 1, -1, -1, 0, 0, -1, 1, 0, -1, 1, -1, -1, 0, 0, 1, 0], [-1, -1, 1, -1, 0, -1, 1, -1, 0, -1, -1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 1, -1, 1, 1, -1, 1, 1, 0, 1, -1, -1, 1, 1, 1, 0, -1, 1, 0, -1, 0, -1, 0, 1, -1, 0, 1, 1, 1, -1, 0, 1, 0, 0, 0, -1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, -1, -1, -1, 1, 1, 0, 0, -1, -1, 1, -1, 0, 0, 0, 0, 0, 0, 1, 1, -1, 0, 0], [-1, 1, 0, 0, 0, 0, -1, -1, -1, 1, 1, -1, 0, 0, -1, 1, 0, 0, 1, 1, -1, -1, -1, -1, 0, -1, 1, -1, 0, 1, 1, 0, -1, 1, 0, 1, -1, -1, -1, -1, -1, 0, 1, 1, -1, -1, -1, -1, 0, 1, 1, -1, 1, 0, -1, -1, 0, 0, 0, -1, 0, -1, 1, 1, 1, 0, -1, 0, 1, 0, -1, 0, -1, -1, 0, 1, -1, -1, 0, -1, -1, 0, 1, 0, 0, 1, 0, -1, -1, -1, 0, -1, 1, -1, 1, 0, -1, 0, 0, 1], [1, 0, 1, 0, -1, 1, -1, -1, 0, 0, 1, 1, -1, 1, 0, 0, -1, 0, -1, -1, -1, 0, -1, 0, 0, -1, 0, 0, 1, 0, 0, -1, 1, 1, -1, -1, -1, -1, 1, 0, 0, 1, 0, 0, 0, 0, -1, 1, 0, -1, 0, -1, 0, 0, 0, 0, -1, -1, 0, -1, -1, -1, 1, 0, 1, 1, -1, 0, 1, 1, 1, 0, 1, 0, 1, 1, -1, 0, 1, -1, 1, 0, 1, -1, -1, -1, -1, -1, -1, 1, 1, 0, 1, 0, -1, -1, 1, 1, -1, 1], [1, -1, 1, 1, 0, -1, 0, 1, 0, 0, 1, -1, 1, -1, 0, 1, -1, 0, -1, -1, 1, -1, 0, 1, -1, 0, 1, 0, 1, 0, 1, 0, 0, -1, 0, 1, 0, 1, 0, 1, -1, 1, 1, -1, 0, -1, 0, -1, -1, 1, -1, 1, 0, 0, 1, 0, 0, 1, 0, -1, -1, -1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 1, -1, -1, 1, -1, 0, -1, 0, 1, -1, -1, 0, -1, 0, 0, 1], [-1, 1, 0, 0, 0, -1, -1, 0, -1, 1, 0, -1, 1, 1, 1, -1, 0, 0, 0, 1, -1, 1, 0, 1, 1, 0, 1, 0, -1, -1, 1, 1, 0, -1, 0, 0, 1, 1, 0, 0, -1, -1, 0, 1, -1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, -1, -1, -1, 0, 0, 1, 0, 1, 1, 1, 0, 0, -1, -1, 0, 1, 0, 0, 1, -1, 0, 1, -1, 1, 1, 0, -1, -1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1], [1, 1, 1, 1, 1, -1, 0, 1, 0, -1, -1, 1, 0, 0, 0, -1, -1, 0, 0, -1, 1, -1, -1, 1, 1, -1, -1, 0, 1, 0, -1, -1, 1, 0, 0, 1, 1, -1, 1, 0, -1, 1, 0, -1, 1, 0, 1, 1, -1, 0, -1, -1, -1, 0, 0, 0, 1, 0, 1, 1, 1, 1, -1, -1, 1, 1, 1, -1, -1, 1, 1, -1, 0, 0, -1, -1, 0, 0, 1, 0, -1, 0, 1, -1, 1, -1, -1, -1, 1, 1, 1, 0, 0, -1, -1, 1, 0, 0, -1, 1], [-1, 1, -1, -1, -1, 1, -1, 1, -1, 0, 0, -1, 0, 1, 1, -1, 1, 0, -1, -1, -1, -1, 1, -1, -1, 1, 0, -1, 1, -1, 0, 1, 0, 1, -1, -1, -1, 1, 1, 1, 0, -1, 1, 0, -1, 0, -1, -1, -1, 1, -1, -1, 1, 1, -1, 0, 0, 0, -1, 1, -1, -1, -1, 1, 1, -1, -1, 1, -1, 0, 1, 1, 1, -1, -1, 0, 0, 0, 1, 0, -1, 1, -1, 1, 0, 0, 0, 0, 0, 0, -1, 0, -1, 1, -1, 1, -1, 1, 1, -1], [0, 1, 1, 1, 0, 1, 0, 0, -1, -1, 0, 1, -1, 1, 0, 0, 1, 1, 1, -1, -1, -1, 1, 0, 1, 0, 0, 1, 1, 1, -1, -1, 0, 1, 0, -1, 0, -1, 0, 0, -1, 1, -1, 1, 1, -1, -1, 0, -1, -1, -1, -1, -1, 1, 1, -1, 1, 1, 0, 0, 1, -1, -1, 1, 1, 0, 0, 0, -1, 1, 0, 1, 1, 1, 1, 0, -1, -1, 1, -1, 1, -1, 1, 0, 1, 1, -1, 0, 0, -1, 1, 1, -1, 0, 1, 1, -1, 0, 0, -1], [-1, 1, -1, 0, -1, 1, 1, 0, 0, 1, 1, -1, 1, -1, 0, -1, 1, 1, -1, 0, 1, 0, 0, 0, 1, 1, -1, 1, -1, -1, 1, -1, 1, -1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, -1, -1, 0, -1, -1, 1, -1, -1, 1, -1, 0, 1, 0, 1, 0, 0, -1, -1, 1, -1, 0, 1, -1, 1, 0, -1, -1, -1, -1, 1, 1, 0, 0, 0, 0, 1, -1, 0, -1, 0, 1, -1, 1, -1, 1, 1], [0, 0, -1, 0, 1, 0, -1, 0, 1, 1, 0, -1, 1, -1, 1, 1, 1, -1, 1, 1, 1, 0, 0, -1, 0, 1, 1, 0, -1, -1, 1, 1, 1, 0, 0, -1, -1, -1, -1, 0, -1, -1, -1, 1, -1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, -1, 1, -1, 1, -1, 1, -1, 0, -1, -1, -1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, -1, 0, -1, -1, 1, 1, 0, -1, 1, -1, -1, -1, -1, 1, 0, -1, -1], [0, 1, 0, 1, 1, 1, -1, 0, -1, 0, 1, 0, -1, 1, 0, -1, 0, 0, 1, 0, -1, 0, 0, -1, 1, 0, -1, 0, 0, -1, 0, 0, -1, -1, 0, -1, 0, -1, 1, 1, -1, 1, -1, 0, 1, 0, 1, 1, -1, 1, 1, 1, 0, 1, 0, 1, 1, -1, -1, 0, -1, 1, 1, 0, -1, -1, 1, 1, -1, 1, 1, -1, 1, 0, 0, 0, -1, 1, -1, -1, 1, 0, 1, 0, 0, 1, -1, 0, -1, 0, 1, -1, -1, -1, 1, 0, 1, 1, 0, 1], [0, -1, 0, -1, -1, -1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, -1, 0, 0, 1, -1, -1, 1, 0, -1, 0, -1, 0, -1, -1, 1, 0, -1, 0, -1, -1, 0, 1, 0, -1, 1, 1, -1, 1, 0, 1, 0, -1, -1, -1, 1, -1, 1, -1, 0, 1, -1, 1, 1, -1, 1, 0, -1, -1, -1, -1, -1, -1, 1, -1, -1, -1, 0, 1, -1, -1, 1, -1, -1, -1, 0, -1, 0, 1, -1, 0, -1, 0, -1, 0, -1, 0, 0, 1, -1, 0, 1, 0, -1], [-1, 0, 0, 1, 0, 1, -1, 0, -1, 0, 0, -1, 0, -1, -1, 0, -1, 1, 1, 1, -1, 0, 0, 1, -1, 1, 0, -1, 1, 0, 1, 0, 1, 1, 1, 0, -1, 0, 0, 0, -1, 0, 0, -1, 0, -1, -1, -1, -1, 0, 0, -1, -1, 1, 0, 0, -1, -1, 1, -1, -1, -1, -1, 1, 0, 0, -1, -1, 1, -1, 0, 1, -1, -1, 0, 0, 0, -1, 0, 0, 0, -1, 1, 0, 1, 1, 1, 0, -1, 0, 1, 1, 1, -1, -1, 1, 1, 1, 0, 0], [0, -1, 1, 0, 0, -1, 1, 0, 1, -1, -1, -1, 0, 0, 1, 0, 1, 1, 0, -1, 1, -1, -1, 1, 0, 1, -1, 0, 1, -1, 1, 0, 1, 0, 0, 0, 1, -1, 1, 0, -1, 1, -1, -1, 0, -1, -1, -1, 1, -1, 1, 1, 1, 1, -1, 1, 1, 0, -1, 1, -1, 0, 0, -1, 0, -1, -1, 1, -1, 1, 1, 0, 0, 1, 0, 0, 0, -1, 1, -1, 0, 1, -1, -1, -1, -1, -1, -1, 0, -1, -1, 1, 0, 0, 0, 1, 0, 0, 0, -1], [1, 0, 1, 1, -1, -1, 0, -1, 0, 1, -1, 1, 0, -1, -1, 0, -1, -1, 0, 0, -1, 0, 0, 1, 1, 0, -1, 1, 1, 0, -1, 0, -1, 1, -1, 1, 1, 1, -1, 1, -1, -1, 0, -1, -1, -1, -1, -1, 0, 0, 0, -1, -1, 1, -1, 0, 1, 0, 1, 1, 0, -1, 1, 0, -1, -1, -1, 1, 1, 1, 1, -1, 1, 0, -1, -1, 1, 0, 0, 0, 1, 1, 0, 0, 0, -1, 1, -1, -1, 0, -1, -1, 0, 1, 1, 1, -1, 0, 0, -1], [-1, -1, -1, 1, 0, 0, 1, -1, -1, 1, -1, 0, 1, 0, -1, -1, 1, -1, 1, 1, -1, 0, 1, 1, 1, 0, 0, 1, -1, -1, 1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, 1, -1, -1, 0, -1, 0, 0, 0, -1, 1, 0, -1, 1, 0, 0, 1, -1, 1, -1, 0, 1, 1, -1, 0, -1, 1, 1, 0, 0, -1, -1, 1, -1, -1, -1, 1, 1, -1, -1, -1, 1, 0, 1, -1, 1, -1, -1, -1, -1, 0, 1, 0, -1, 1, 1, 0, 1, -1, 1], [1, 1, 0, 0, 1, 1, 0, -1, 1, 1, -1, 1, 1, 1, -1, -1, 0, -1, 0, -1, -1, 0, 1, -1, 0, 1, -1, 1, 0, 1, 0, 1, 1, 1, 0, 0, -1, 1, -1, -1, 0, -1, 0, 0, 0, 1, -1, 1, -1, -1, 1, 0, 0, 1, -1, 1, 1, 0, 0, 1, 0, -1, -1, 1, -1, 0, 0, 1, 1, -1, 1, -1, 1, 1, 0, 0, -1, 1, 1, 0, 1, 0, -1, 1, -1, 0, -1, -1, 0, 0, -1, 1, -1, -1, -1, -1, 0, -1, -1, 1], [1, 0, 0, 0, -1, -1, 1, 1, 1, 1, 1, 0, -1, 1, -1, 0, 1, -1, 1, 1, 1, -1, 0, 1, 1, -1, 1, 1, 1, 1, -1, -1, 0, 0, -1, 0, 1, 0, -1, 1, 1, 0, 0, 0, -1, 0, -1, 0, 0, -1, -1, 1, 1, -1, 0, 0, 0, 0, -1, 1, -1, -1, 0, 1, -1, -1, -1, 0, -1, 1, 0, 1, -1, 1, 0, 1, 0, -1, -1, 0, -1, -1, 0, -1, 1, 1, 1, 1, 0, 1, 0, -1, -1, 0, 1, -1, -1, 1, 0, 1], [-1, 1, 0, 0, 1, 1, 1, 1, -1, 0, -1, 0, -1, 0, -1, -1, -1, 0, 1, -1, -1, 1, -1, 0, -1, 0, 1, -1, 0, 0, 1, -1, 0, -1, -1, 0, -1, 1, 0, 0, 0, -1, 1, -1, -1, 0, 0, 0, -1, -1, 1, -1, -1, -1, -1, 1, -1, 1, 0, 0, -1, 1, 1, 1, 1, 1, 1, 0, 0, -1, 1, 1, 0, 0, 1, 1, 1, -1, -1, 0, 0, 0, 0, 0, -1, 1, 1, 0, -1, -1, -1, -1, -1, -1, 0, -1, -1, 0, 0, 1], [-1, -1, -1, 1, 1, 0, -1, 1, -1, 1, -1, 1, -1, 0, 1, -1, 1, -1, 0, 1, 0, 1, 0, 1, -1, 1, -1, 1, 0, -1, -1, 1, 1, -1, -1, 1, 1, 0, 0, 0, 1, -1, 0, -1, 0, 1, 1, 1, -1, 0, -1, -1, -1, -1, 1, 1, 1, 1, 1, 1, 0, 1, 0, -1, 0, 1, -1, 0, 1, -1, -1, 0, 0, 1, 0, 0, 0, -1, -1, 1, -1, 1, -1, 0, 1, 0, 1, 1, 0, -1, 0, 0, -1, 0, 0, -1, -1, -1, -1, -1], [1, 1, -1, 0, -1, 0, 0, 0, 0, 0, 1, -1, 0, -1, -1, -1, -1, 0, 0, -1, 1, 0, -1, 1, 1, 0, 1, -1, 0, -1, 0, 1, 0, 0, 1, 0, 0, 0, -1, 0, 1, 1, 0, -1, 0, 0, 1, -1, -1, 1, -1, 0, 1, 1, -1, 1, -1, 1, 1, -1, 0, 0, -1, 1, 0, -1, 0, 1, 0, -1, -1, 1, 1, 0, -1, -1, 1, 0, 0, -1, 1, -1, 1, 1, 1, 1, -1, 0, 1, 0, 0, 1, -1, -1, -1, -1, 0, -1, -1, 1], [-1, 1, 0, 0, 1, 0, 0, -1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, -1, -1, 1, 0, -1, -1, 1, 0, 1, 1, 0, -1, 0, 1, -1, 0, 1, -1, 1, 1, 1, -1, 1, 1, 0, 0, 0, -1, 0, 0, -1, 0, 0, -1, 1, -1, 1, 0, 1, -1, -1, 0, 0, -1, 0, 1, 0, 0, -1, 0, 1, 0, -1, -1, 0, -1, 1, -1, 1, 1, -1, 1, 1, 1, 1, -1, 0, 1, 0, -1, 1, -1, 0, 1, -1, 1, 1, 1, 0], [0, 1, 1, -1, -1, 0, 1, 0, 1, -1, 1, -1, 0, 0, -1, -1, 0, -1, -1, 0, 1, 1, -1, -1, 1, 1, 1, -1, -1, 1, -1, 0, 1, 1, 1, -1, 0, 1, 0, 1, 1, -1, 1, -1, 0, 1, -1, -1, 1, 1, 0, -1, 0, 1, 0, 1, 0, 0, 0, 0, -1, 1, -1, 0, -1, 0, -1, 1, 1, -1, -1, 1, -1, 1, 1, 1, 1, 1, -1, 1, 1, -1, 1, 0, 1, -1, 0, -1, 0, 0, 1, -1, -1, -1, -1, 0, 1, 1, -1, 0], [-1, 1, 1, -1, -1, -1, 1, 0, -1, -1, -1, 0, 0, 1, 0, 0, -1, -1, 1, -1, 0, -1, -1, 0, -1, 0, 1, -1, -1, 0, 1, 1, 0, 1, 1, -1, 0, -1, -1, 1, -1, 1, -1, -1, 1, 0, -1, 0, -1, 1, 0, 0, -1, -1, -1, -1, 0, -1, -1, -1, 1, 0, 1, 1, -1, -1, 1, -1, 0, 1, 1, 1, -1, -1, -1, 0, 0, 1, -1, 0, 1, -1, -1, 1, -1, -1, 0, -1, -1, 0, -1, -1, 1, -1, -1, -1, 0, 1, 1, 1], [1, -1, 0, 0, -1, 0, 0, -1, 1, 1, -1, 1, 0, -1, 1, 1, -1, 1, 1, 1, 1, 1, 1, -1, 0, 0, -1, -1, 0, 1, -1, 0, -1, 1, 0, 1, 0, 1, 1, 1, -1, 1, 0, -1, -1, -1, 1, 1, -1, 0, 1, 1, 0, 1, -1, 1, 1, 0, -1, 1, 1, -1, 1, -1, 1, 1, 1, -1, 1, -1, 0, 1, 1, 0, -1, 1, 0, 0, -1, 0, 0, 1, -1, 1, -1, -1, 0, 1, -1, 0, 0, 1, 0, -1, 0, -1, 1, 1, 0, 1], [-1, -1, 1, 1, -1, -1, 0, 0, 1, 1, -1, 1, 0, 1, 1, 1, 0, 1, -1, 0, 1, 1, -1, 0, -1, -1, 1, 1, 1, 1, 0, 0, 0, -1, 1, 1, -1, 1, 0, 0, -1, -1, 1, 1, 0, 0, -1, -1, 0, 0, 0, 1, 0, 1, 1, -1, 1, 1, 0, -1, 0, 1, 1, 0, 1, -1, 0, 0, 1, 0, -1, -1, 1, 1, 0, 0, -1, 0, -1, -1, -1, 1, 0, 0, -1, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, -1, 0, 0, 1], [-1, -1, -1, 1, -1, -1, -1, 1, 1, 1, 1, -1, 1, -1, 0, -1, -1, 1, 1, 1, 1, -1, 1, -1, -1, 1, -1, 1, 0, -1, 1, 0, 0, 0, 1, 1, -1, 0, 0, 0, 0, -1, 1, 0, 0, 1, -1, -1, 1, 0, 0, -1, 0, 1, 0, -1, 1, -1, 1, 1, 0, 0, 0, 0, -1, 0, -1, 1, 0, 0, 1, -1, 1, -1, 1, 0, -1, 1, -1, -1, 1, 0, 1, 1, 0, 0, -1, 1, 1, 1, 0, -1, -1, -1, 0, 0, -1, 1, -1, -1], [1, 1, -1, -1, 1, 0, 1, 1, -1, -1, 1, 1, 1, 1, 0, 0, 0, -1, 1, 1, 0, 1, 0, 1, -1, 1, -1, -1, 0, 0, -1, -1, 0, 1, 1, 1, -1, 1, 0, -1, 0, 0, 0, 0, -1, 1, 0, 1, 1, 1, 1, 1, -1, 0, -1, 1, 0, -1, -1, 0, 1, -1, -1, 0, 0, 1, 0, 1, -1, -1, 1, -1, 0, -1, -1, 1, 0, 1, -1, 0, -1, -1, 0, -1, -1, -1, -1, 1, 1, 0, 1, 1, -1, -1, -1, 0, 0, 0, 1, 1], [0, 0, 1, 0, 0, 0, 0, 0, -1, 1, 0, 0, 1, -1, -1, 1, 1, 0, -1, 0, 1, 1, -1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, -1, 1, 0, 0, 1, 1, -1, 1, 1, 0, 1, 0, 1, 0, 0, 1, -1, 0, -1, 1, 1, 0, 0, -1, 1, 0, -1, 1, 1, 1, 1, 1, -1, 1, -1, 0, 1, 0, -1, -1, -1, 0, -1, 0, 1, 1, 0, 0, 0, 1, 0, 1, -1, -1, 1, 1, 1, -1, -1, 1, 0, 0, 1, 1, 0], [1, -1, -1, -1, 0, -1, 0, -1, 0, 0, 1, -1, 1, 1, 1, 0, 1, 1, -1, 0, -1, -1, -1, -1, 1, -1, -1, -1, 1, -1, -1, 0, 1, -1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, -1, -1, 0, 1, 1, 1, 1, 0, 1, 0, 0, -1, 1, -1, -1, -1, 0, -1, 1, -1, -1, 1, 1, 1, 1, 1, 0, 1, 1, 1, -1, 1, 0, 1, 1, -1, 0, -1, 1, 1, 0, 0, 0, 0, 0, -1, 0, -1, 0, 1, 1, -1], [1, 0, 1, 0, 0, 0, -1, -1, 1, 0, 0, 1, 0, -1, 1, -1, 1, 0, 1, 1, 1, -1, 0, 1, -1, -1, 1, -1, -1, -1, 0, -1, -1, 0, -1, -1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, -1, 1, 0, 1, 1, 0, -1, -1, 0, -1, 1, 1, -1, 1, 0, -1, 1, 1, 1, -1, 0, 0, 1, -1, 1, 0, -1, 1, 0, 1, 1, -1, 0, 0, -1, 1, -1, 1, 0, -1, 0, 0], [-1, 1, 1, 1, -1, -1, -1, 1, -1, 0, 1, 0, 0, 0, 1, 0, -1, -1, -1, 0, 0, 0, -1, -1, -1, 1, -1, 0, -1, 0, -1, 1, 0, 1, 0, 0, -1, 0, 0, 0, -1, 0, 0, -1, -1, 0, 1, 0, -1, 1, 0, -1, 1, 0, 1, -1, 0, 1, -1, 1, 0, -1, -1, 0, 0, 1, 0, 0, 0, -1, 0, -1, 1, -1, 1, 1, -1, -1, -1, -1, -1, 1, 0, 1, 1, -1, 1, 0, 0, 1, -1, 1, 1, 1, -1, -1, 0, -1, 0, 1], [-1, -1, -1, 1, 0, 0, -1, -1, 0, 1, 1, 0, 1, 0, -1, -1, 0, 0, 0, 0, 1, 1, -1, -1, -1, 0, 1, 1, 0, 0, 0, 0, -1, 1, 0, 0, 0, 1, -1, 0, -1, 1, 0, -1, -1, -1, -1, 0, 1, 1, 1, 0, -1, 1, -1, 0, 0, -1, 0, 1, 0, -1, -1, 0, 0, 1, 1, 1, 1, 0, -1, -1, 0, 0, -1, 1, 1, -1, -1, 0, -1, 1, 0, 1, 1, -1, 0, 0, 0, -1, 1, 0, -1, 0, 1, 1, -1, 1, 1, -1], [-1, 0, 0, -1, -1, 0, -1, 0, -1, 1, 1, 0, -1, -1, 0, 0, 0, 0, 0, -1, 1, 0, -1, -1, 0, 0, -1, 1, -1, -1, 0, -1, 1, -1, 1, -1, -1, -1, -1, 0, 0, -1, 0, -1, 0, -1, -1, -1, -1, 1, -1, 0, 0, -1, 0, -1, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 1, 1, -1, 0, 0, 0, -1, 1, 1, -1, -1, 0, 0, -1, 0, -1, 1, 1, 1, 0, 0, 1, 0, 0, 0, -1, 0, 1, 1, -1, 1, -1], [1, 1, 0, 1, -1, 1, -1, 1, -1, -1, 1, 0, 1, -1, 0, -1, 0, -1, 1, 1, -1, 0, -1, 0, 0, 1, 1, -1, 1, 1, 1, 0, 0, 0, 0, -1, 0, -1, -1, 1, 0, 1, 1, 0, 1, -1, 0, -1, 0, -1, 0, -1, 0, 1, -1, -1, 1, 0, 1, 0, 1, 1, 0, -1, 1, 0, 1, 0, 1, -1, 1, 0, 1, 0, 0, 1, 1, -1, -1, -1, 1, 0, -1, 0, -1, 1, -1, -1, -1, 0, -1, -1, -1, -1, 0, -1, 1, 1, 1, 1], [1, 0, -1, 0, 0, -1, 0, 0, -1, 1, -1, -1, 1, 1, 1, 0, -1, 1, 0, -1, 1, -1, 0, -1, -1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, -1, 0, 0, -1, 0, -1, 1, 1, -1, 0, -1, 0, -1, 1, 1, 1, 1, 0, -1, -1, -1, 0, 1, 1, -1, -1, 0, 1, -1, 0, -1, -1, -1, 1, 0, -1, 1, -1, 1, 1, 0, -1, 1, -1, 0, -1, 0, 1, 0, 1, 1, 1, -1, 1, 1, 1, 0, 0, -1, 1, -1, 0, -1, -1, 1], [0, -1, -1, 1, 1, 1, 1, 0, -1, 0, -1, -1, 1, 1, 0, 0, 1, 0, 1, -1, -1, 0, 0, 0, 0, -1, 1, -1, 1, 1, -1, -1, -1, 0, 0, 0, 1, 0, 0, 1, -1, -1, -1, -1, 1, -1, 1, 0, 0, 1, -1, 0, 0, -1, 1, 0, -1, -1, -1, -1, 0, 1, 1, -1, 1, -1, 0, 1, -1, 0, -1, 0, 1, 0, 0, -1, 0, 0, 0, 1, -1, 1, 1, -1, -1, 1, 1, -1, 0, 0, 0, 0, -1, 0, 1, -1, -1, 1, 0, 1], [0, -1, -1, 1, 1, 1, 1, 0, -1, 1, -1, 1, 1, 1, -1, 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, 1, -1, -1, 1, 0, -1, -1, 1, 1, 1, 0, 0, -1, -1, -1, 0, -1, -1, 0, 0, 1, 0, -1, -1, 1, 1, 0, -1, -1, 0, 0, 0, 1, 1, 1, 0, 1, -1, 0, 0, 0, -1, -1, 0, 1, -1, 0, 0, 1, 1, -1, -1, 1, -1, -1, 0, 0, 1, -1, 1, -1, 0, 0, -1, 0, -1, 1, 1, 1, 1, -1, -1, -1, 0], [1, -1, 1, 1, 1, 1, 0, -1, 0, 1, 0, 1, 0, 0, 0, -1, 0, -1, -1, 1, 1, -1, 0, -1, -1, -1, -1, -1, 0, -1, 1, -1, 0, -1, -1, 0, 0, -1, 1, 1, -1, -1, 1, 1, -1, 0, -1, 0, 0, 1, 1, 0, 1, -1, 1, -1, -1, 1, 0, -1, 1, 1, -1, -1, -1, -1, 0, -1, 1, 0, 1, 1, -1, -1, -1, -1, -1, 0, -1, -1, 1, -1, -1, -1, 1, 1, 1, 1, -1, 0, 0, 0, 0, -1, 0, 0, 0, 1, 0, 1], [-1, 0, 1, 0, -1, -1, 0, 1, 1, -1, 0, 1, -1, 1, 0, -1, -1, 0, -1, -1, 0, 1, 0, 0, -1, -1, 1, 1, 1, 0, 1, -1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, -1, -1, -1, 0, 0, -1, 1, -1, -1, 0, -1, 0, -1, 1, 0, -1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, -1, -1, 1, -1, 1, -1, 0, 1, 0, 1, 1, 1, -1, -1, 1, 1, 1, 1, -1, 1, 1, -1, -1, -1, 0, 1, -1, -1, -1, 0, 0, 1], [1, -1, 0, 1, 1, -1, 0, -1, 0, 0, 1, -1, -1, -1, 1, 1, 0, 0, 1, 1, 0, -1, 0, -1, 1, 1, -1, -1, -1, 0, -1, -1, 1, -1, 1, 1, 0, 0, -1, 0, -1, 0, 1, 1, -1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1, 1, -1, 0, 1, 1, -1, 1, 0, -1, -1, -1, -1, 1, 1, -1, -1, -1, 1, 0, -1, 0, 1, 0, 0, 0, 0, -1, -1, 0, 0, 1, 0, 0, 1, -1, 1, 1, 0, 0, 1, 0], [1, 1, 1, 1, -1, -1, -1, 1, 0, 1, 1, 1, 1, 1, -1, 1, -1, 1, -1, 0, 1, 0, 1, -1, -1, 0, 1, 1, -1, 1, -1, -1, -1, -1, -1, 0, -1, -1, 1, 0, 1, 1, 0, -1, 1, -1, -1, -1, -1, 1, 0, -1, -1, 0, 1, 0, -1, 0, 0, 0, -1, 1, 1, -1, -1, -1, 0, 1, 0, 0, 0, -1, 1, -1, -1, -1, 1, -1, 1, 0, -1, 1, 0, 0, 1, 1, 0, -1, -1, 0, -1, 1, -1, 1, 0, -1, 0, -1, -1, 0], [1, 1, 0, 1, 1, 1, 1, -1, 1, -1, -1, 1, 0, 1, 0, -1, 0, -1, -1, 1, 0, -1, 0, -1, 1, 1, 0, 0, -1, -1, 0, 1, -1, 0, 0, 0, 1, 1, -1, 1, 1, -1, -1, -1, -1, 1, 0, 0, -1, 1, -1, 0, -1, 0, 1, 1, 1, -1, -1, -1, 0, 0, 1, 1, -1, 1, -1, 0, -1, -1, -1, 0, 1, -1, 1, 0, 0, -1, 1, 1, 1, -1, -1, 1, -1, -1, 0, -1, 0, -1, 1, 1, 0, 1, 0, 1, 0, 1, -1, 0], [1, -1, 0, -1, 1, 1, 0, 1, -1, 0, -1, 0, 1, 1, 1, 1, 1, -1, 1, 0, -1, -1, 1, 0, -1, -1, 0, -1, 1, -1, -1, 0, 0, -1, 1, 0, 0, -1, -1, 0, -1, -1, 1, -1, 1, 1, 1, -1, 1, 1, -1, 1, 1, -1, 0, 1, -1, 0, 0, -1, 1, -1, 0, 0, 0, 1, -1, 0, 0, 0, -1, 1, 1, -1, -1, -1, -1, 0, -1, 0, 1, 0, -1, 0, -1, 1, 1, 0, -1, 0, 0, 1, 0, -1, 0, -1, 0, -1, 1, 0], [-1, -1, -1, 1, -1, 1, -1, -1, 1, 0, 1, 1, 0, 0, -1, 1, -1, -1, -1, 0, 0, -1, -1, -1, -1, -1, 0, -1, 0, -1, -1, -1, -1, -1, 1, 1, 0, 0, 0, 0, 1, -1, 1, 0, -1, -1, 0, 0, 1, -1, -1, -1, -1, 0, 0, 1, 0, 1, 0, 1, -1, 1, 1, 0, 0, 0, 1, -1, 1, 0, 1, -1, 1, 0, 0, 1, 1, -1, -1, 0, 0, 1, 0, -1, 0, 0, 1, 0, 1, 0, -1, 1, 0, -1, 1, 0, -1, 1, 1, 0], [1, 0, 1, 1, 1, -1, -1, 0, 1, 0, 0, 1, -1, 0, 0, -1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, -1, 0, -1, 1, 1, -1, -1, 1, -1, -1, 0, -1, -1, -1, 0, 0, 0, 0, -1, -1, -1, 1, 0, 0, 1, -1, 1, 1, 0, -1, 1, -1, 0, 0, 0, 1, 0, 1, 0, -1, -1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, -1, -1, 1, -1, 0, -1, -1, 0, 0, 0, 1, -1, 1, 1, -1, 1, 0, 0, 1], [-1, 0, -1, -1, 1, 0, -1, 0, -1, -1, 0, 0, 1, -1, -1, 0, 0, 1, -1, 0, 0, -1, -1, 1, 0, 1, 0, -1, 1, 1, 1, 1, 0, 0, -1, -1, 0, 0, -1, -1, 0, 0, 0, -1, 1, 1, 0, 0, 1, -1, 0, -1, 1, 1, 0, -1, 0, 1, 0, 1, 0, 1, 0, 1, -1, 0, 0, 1, 1, -1, 1, 1, -1, 0, -1, -1, 1, 1, 1, 0, 0, 1, -1, 1, -1, 1, 1, 0, 0, 1, 0, 1, 0, -1, -1, 0, 1, 0, 0, 1], [0, 0, 0, 0, 0, 1, 1, 0, 0, -1, 1, 0, 0, 1, -1, 0, -1, -1, 0, -1, 1, 0, 1, 0, 0, 0, 0, -1, -1, 0, -1, -1, -1, 1, -1, 0, 1, 0, 1, -1, -1, 1, -1, 0, 0, 0, -1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, -1, 1, -1, 0, 0, 1, 1, 1, -1, 0, 0, 1, -1, -1, 0, 0, -1, 0, -1, 1, -1, 1, 1, -1, 1, -1, 0, -1, 0, 0, 0, 0, 1, 1, -1, 0, 0, 1, 1, -1], [0, 0, 1, -1, 1, -1, 0, 0, 0, -1, 0, 1, -1, -1, 1, -1, 1, -1, 0, 0, 1, 0, 1, -1, 1, 0, -1, 1, 1, 0, 1, 0, -1, 1, -1, 1, 1, 0, 1, -1, 1, -1, 0, 1, 0, -1, 1, 1, 1, 1, -1, 1, 1, 1, 0, 1, 1, -1, 0, 1, -1, 0, 0, 1, 1, 1, 0, 0, -1, -1, 0, 1, 0, -1, 1, 1, -1, 1, -1, -1, -1, -1, 1, 0, -1, 0, -1, 0, 0, 1, -1, -1, 0, 1, -1, 1, -1, 0, 0, 0], [-1, 1, 0, -1, 1, 0, 0, 0, -1, 0, 1, 0, 0, -1, 0, -1, 0, 1, -1, -1, -1, -1, 1, -1, 0, 1, -1, 0, -1, 1, -1, 1, 1, -1, 0, 0, 1, -1, -1, -1, -1, 1, -1, 1, -1, -1, -1, 0, 1, 1, 0, 1, -1, -1, 1, 1, 1, 0, 1, 1, -1, -1, 0, 0, 0, 0, 1, 0, 0, 0, -1, 0, -1, -1, -1, -1, 0, -1, -1, 1, -1, 0, -1, 1, -1, 1, 0, 1, 1, -1, 1, 1, -1, 0, -1, 1, -1, 1, -1, -1], [-1, -1, -1, 0, -1, 0, -1, -1, 1, 1, -1, 0, -1, 1, 1, 0, -1, -1, -1, 0, 0, -1, 1, -1, 0, 0, -1, 0, 1, 0, 1, -1, 0, -1, 0, -1, 0, -1, 1, -1, -1, 0, -1, 0, -1, 0, 0, 1, -1, 0, -1, 0, -1, 1, 1, 1, 0, 0, 1, 1, 0, 1, -1, 1, 0, -1, -1, -1, 0, 0, -1, -1, 0, -1, 1, 1, 1, 1, -1, -1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, -1, -1, 1, 0, 0, 0, -1, 0, -1, 1], [1, 1, 0, -1, -1, 0, 0, 0, 1, -1, 0, 1, 0, 0, 1, 1, 0, 1, -1, 0, 1, 0, 1, -1, 1, 0, 0, -1, 1, -1, 0, 0, 1, 1, 1, 0, -1, -1, 0, 1, 1, 0, 0, 0, -1, -1, -1, -1, 0, -1, 1, -1, 1, 0, -1, 1, 1, 0, 1, 0, 0, 1, -1, 0, -1, 0, 1, 0, 0, 0, -1, 0, -1, 1, 0, 0, 1, 0, 1, 0, 0, 1, -1, -1, 0, -1, 1, 0, -1, 1, -1, 0, 0, -1, 0, -1, 1, -1, 0, -1], [0, 1, 0, 0, -1, -1, 0, -1, 0, 1, 0, 0, 1, -1, 1, -1, 0, -1, 0, 0, -1, 1, -1, -1, 1, 1, 0, -1, 0, 0, -1, 1, 0, 0, 0, 0, 1, 1, 0, 0, -1, 0, 0, 0, 1, 0, 0, 1, -1, -1, 1, 1, 0, 1, -1, -1, 0, 0, 0, -1, 0, 0, -1, 1, 1, -1, 0, 0, 1, 0, 1, 0, -1, 1, -1, 1, 0, 1, 1, 0, -1, -1, 0, 1, 0, 1, 1, 1, -1, 0, 1, 1, 1, 1, -1, 1, 0, 1, -1, -1], [-1, 1, 0, -1, -1, 0, -1, 1, 0, 0, -1, -1, 1, 1, 0, -1, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, -1, 0, -1, 0, -1, 0, -1, -1, -1, -1, 1, -1, -1, 1, -1, 0, -1, 0, 1, -1, -1, -1, 1, -1, 0, -1, 0, 0, 1, 0, -1, -1, -1, 1, 0, 0, 1, -1, 1, 1, 0, 1, 0, -1, -1, -1, 0, 1, 1, 0, 0, 1, 0, -1, 1, 1, 0, 1, -1, -1, 0, 1, 1, 1, 0, 1, -1, 0, 1], [0, 0, 1, 0, 1, -1, -1, 0, 1, 0, 0, 0, 1, -1, 1, -1, -1, 1, -1, 0, 0, 0, 1, 0, -1, 1, -1, 1, 0, 1, 0, 0, -1, -1, -1, 0, -1, 0, -1, 1, -1, -1, 0, 1, 1, 0, 0, -1, -1, -1, 1, -1, 1, 0, -1, -1, 1, 1, -1, 1, 1, 0, -1, 0, 0, 1, 0, -1, 0, -1, -1, -1, 0, -1, 1, -1, -1, 0, 1, 0, -1, 1, 0, -1, 0, 0, -1, 0, -1, 1, -1, 1, 0, 0, 0, -1, 0, 0, -1, 1], [1, -1, 0, 1, 0, 0, 0, 0, -1, 1, 0, 0, -1, 0, 1, 1, 0, 1, 0, 1, 1, -1, 1, 0, 1, 0, -1, 1, -1, 0, 0, 1, -1, -1, 1, -1, 0, 0, 1, 0, -1, 1, 1, 0, 0, -1, -1, 1, -1, 1, 1, 1, 0, 1, -1, 1, 1, 1, -1, 0, 1, 1, 1, -1, 1, 0, 1, -1, -1, 1, 0, 1, 1, 0, 0, -1, 1, 0, -1, -1, 1, -1, 0, 1, 1, -1, -1, 0, 0, 1, 0, -1, 1, 1, -1, -1, 1, -1, 0, 0], [0, 1, -1, 0, -1, 0, 0, 0, 0, -1, -1, -1, 0, -1, 1, 1, -1, -1, 0, 1, -1, -1, 0, 0, 1, 0, 0, 1, 0, -1, -1, -1, 1, 1, -1, 1, 0, 0, -1, 1, 0, -1, -1, 0, -1, 0, 0, 0, 0, 1, 0, -1, -1, 0, -1, -1, 1, 0, -1, 1, 1, -1, 0, 0, -1, 1, -1, 0, 0, 0, 0, 0, 0, 1, -1, 0, 1, 0, -1, 0, 1, 0, -1, 1, -1, -1, 1, 0, 0, -1, 0, 0, 0, 0, -1, 0, 1, -1, 1, 1], [-1, 0, 0, 1, 1, 1, 0, 0, -1, 0, -1, 0, 1, -1, -1, -1, -1, 1, 0, 0, 1, 0, -1, -1, 0, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, 0, -1, 1, 0, 1, 0, -1, 1, -1, -1, 0, 0, 0, 0, -1, 1, -1, 0, 1, 1, -1, 0, 0, -1, 0, 1, 1, -1, 1, 1, -1, 0, -1, -1, 1, 0, -1, 1, 1, 1, 0, -1, -1, 1, 1, -1, 1, -1, 0, 1, 1, -1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0], [0, -1, 1, 0, 1, -1, 0, 1, 1, 0, 1, -1, -1, 1, 0, 0, 1, -1, -1, 0, 1, -1, 1, -1, 0, 0, -1, -1, 0, 1, 1, 0, 1, 0, -1, 1, -1, 1, 0, 1, 0, 1, 0, 1, -1, -1, 1, 1, 0, 0, -1, 1, 1, -1, -1, -1, -1, -1, 1, 1, 0, 0, 1, 0, 1, 0, -1, 0, -1, 0, -1, -1, -1, 0, 0, 1, 0, 1, 0, 0, -1, 0, -1, 1, 0, 0, -1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, -1, -1], [1, -1, 1, 0, -1, -1, 0, 0, 0, -1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, -1, 1, 0, 1, 1, -1, 0, 0, 0, -1, 0, 0, 0, -1, 0, 1, 0, 0, 0, 1, 1, 1, -1, -1, 0, -1, 1, -1, 0, -1, 0, 1, 0, 1, 0, 1, 1, -1, 0, 1, 0, -1, 0, -1, -1, 0, 0, 0, 1, 1, 0, 0, 1, -1, 0, 0, -1, 0, 1, -1, 1, 0, 1, -1, -1, 1, 0, 0, 1, -1, 0, 0, 0, 1, 0, -1, 0, 0, 1, 0], [1, -1, 1, 0, 1, -1, -1, 1, 0, 0, 0, 0, 0, -1, 0, -1, 1, 0, 0, 1, -1, -1, 0, -1, 1, 0, 1, 1, -1, 0, -1, 0, 0, 1, -1, -1, -1, 0, 1, 0, 0, -1, 0, 0, -1, 1, 1, 1, 0, -1, -1, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, -1, 1, 0, -1, -1, 0, -1, 1, 1, -1, 0, 1, 0, -1, 1, 1, -1, -1, 0, -1, -1, 0, 1, 1, -1, -1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1], [0, 1, 1, 0, 0, 1, 1, 0, 1, 1, -1, -1, 1, -1, 1, 0, 0, -1, 0, 0, 0, -1, 1, 0, 1, -1, 0, -1, -1, 0, 1, -1, 1, 1, 0, 0, -1, 0, 0, 1, 0, -1, 0, 1, 1, 1, 0, -1, 1, -1, -1, 0, 0, -1, 0, 0, -1, 1, -1, -1, 0, 0, -1, 0, 1, 1, 0, 1, -1, -1, -1, 0, 0, -1, 0, 1, 0, 1, -1, 0, 0, 0, 0, 1, 0, -1, 1, -1, -1, 1, 0, -1, 1, 0, 0, -1, -1, -1, -1, 0], [0, -1, 1, -1, -1, -1, 0, -1, -1, 1, -1, -1, 0, -1, 1, 1, 1, -1, 1, 0, -1, -1, -1, 1, 1, -1, -1, -1, 1, 0, 0, -1, 0, 0, 1, 1, 0, 1, -1, 0, 0, 1, -1, 0, 0, 1, 1, -1, 0, 1, 1, 1, -1, 0, 0, -1, 0, -1, -1, 0, 1, 1, -1, -1, 1, -1, -1, 1, 0, -1, 1, 0, 1, -1, 1, 0, 0, 0, -1, 0, 1, 0, 0, 1, -1, 1, 1, -1, 0, 1, -1, 1, 0, -1, 0, 0, 1, 1, 1, 1], [0, 0, -1, 0, -1, 0, 1, -1, 1, -1, 0, -1, 0, 1, 0, 1, 1, 0, -1, 1, -1, 1, -1, 0, 1, -1, -1, -1, -1, 1, 0, 0, -1, -1, 1, 1, 1, -1, 0, -1, -1, 1, -1, -1, 0, 0, 1, 0, 0, 1, 0, 0, 0, -1, -1, 1, 1, -1, 1, 1, -1, -1, 0, 1, 1, 1, -1, 0, 0, -1, 1, 0, 1, 0, 1, 1, 0, 0, 1, 1, -1, 1, 0, 0, -1, -1, 1, -1, 0, 1, 1, 1, 0, 1, -1, -1, 0, -1, 0, -1], [0, -1, 1, 0, -1, 0, 1, -1, -1, -1, 0, -1, 1, 0, 0, 0, -1, 1, -1, 1, 1, -1, 1, 0, 0, 0, 0, 1, 0, -1, -1, 0, -1, -1, -1, 0, 1, 0, 0, -1, -1, -1, 0, 0, 0, 0, -1, 0, -1, 0, -1, 0, 0, 0, -1, 0, 0, -1, -1, 0, -1, -1, 1, -1, 0, 1, 0, 0, 1, 0, 0, 1, -1, 0, 0, 0, -1, 1, 1, -1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, -1, -1, -1, -1, 1, 1, 0, -1, -1, 0], [1, 0, 1, -1, 1, 1, 0, 0, -1, 0, 0, 1, 1, 1, 1, 0, -1, 1, 1, 0, 1, -1, 1, -1, 1, 0, 0, 1, -1, -1, 0, -1, 0, -1, 1, 1, 1, -1, -1, 0, 1, -1, -1, 0, 0, 1, 1, -1, 1, -1, 1, -1, 0, -1, 0, -1, 1, 0, 0, 1, -1, 0, 0, 1, -1, -1, 0, -1, 1, 1, -1, 0, 1, 0, -1, -1, 0, -1, -1, 1, -1, 0, -1, 0, -1, -1, 1, 1, 1, -1, -1, 0, 1, -1, 1, -1, 1, 0, -1, 0]]
,const := λ i _, 1,
  to_partition := default _,
  restricted := univ,
  dead := ∅ }

def T' : tableau 2 2 :=
{ to_matrix := list.to_matrix 2 2
    [[1,1],[-1,2]],
  const := λ _ _, 1,
  to_partition := default _,
  restricted := univ,
  dead := ∅ }

def of_tableau (T : tableau m n) : ftableau m n :=
{ to_array := d_array.foreach (mk_array _ 0)
    (λ Z _, let i := fin.unpair₁ Z in let j := fin.unpair₂ Z in
      stableau.fin.cases_last (T.const i 0) (T.to_matrix i) j  ),
  ..T }

#eval (is_tableau.pivot (of_tableau T') 0 1).to_array

open is_tableau

set_option profiler true

#eval (simplex (λ _, tt) 0 (of_tableau T') dec_trivial).2

#eval let s := (simplex (λ _, tt) 0 (of_tableau T) sorry) in
  (s.2, s.1.row_indices.1,
    s.1.row_indices.1.countp (λ i, ∃ h, @option.get _ (s.1.to_partition.rowp i) h ≠ i.1),
    s.1.read 0 (fin.last _))

end test


universes u

namespace list

def filter_some {A : Type u} : list (option A) → list A
| [] := []
| (mx :: xs) := (match mx with
  | none := λ l, l
  | some x := list.cons x
  end) (filter_some xs)

lemma map_filter_some {A B} (f : A → B) (xs : list (option A))
  : filter_some (map (option.map f) xs)
  = map f (filter_some xs)
:= begin
induction xs; dsimp [list.map, option.map, option.bind, filter_some],
{ reflexivity },
{ induction a; dsimp [option.map, option.bind, function.comp, filter_some],
  { assumption },
  { rw ih_1 }
}
end

end list