Problem p02608 (C++) — buggy submission, verdict: Time Limit Exceeded

#pragma GCC target("avx2")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
using pll = pair<ll, ll>;
using Graph = vector<vector<ll>>;
#define all(v) v.begin(), v.end()
#define rep(i, n) for (ll i = 0; i < (ll)(n); i++)
#define rep2(i, l, r) for (ll i = (l); i <= (ll)(r); i++)
#define rep3(i, l, r) for (ll i = (l); i >= (ll)(r); i--)
#define dup(x, y) (((x) + (y)-1) / (y)) // x/yの除算の切り上げ
template <class T> inline bool chmax(T &a, T b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T> inline bool chmin(T &a, T b) {
  if (a > b) {
    a = b;
    return 1;
  }
  return 0;
}
const int inf = 1001001001;
const ll INF = 1LL << 60;
const ll mod = 1000000007;
const ld pi = acos(-1);

// xor演算
// a^b=b^a
// a^(b^c)=(a^b)^c
// a^a=0
// a+b=a^b + 2(a&b)
//(4a)^(4a+1)^(4a+2)^(4a+3)=0

// union by size + path having
// 最初にUnionFind a(n);で宣言
class UnionFind {
public:
  vector<ll> par; // 各元の親を表す配列
  vector<ll> siz; // 素集合のサイズを表す配列(1 で初期化)

  // Constructor
  UnionFind(ll sz_) : par(sz_), siz(sz_, 1LL) {
    for (ll i = 0; i < sz_; i++)
      par[i] = i; // 初期では親は自分自身
  }
  void init(ll sz_) {
    par.resize(sz_);
    siz.assign(sz_, 1LL);
    for (ll i = 0; i < sz_; i++)
      par[i] = i; // 初期では親は自分自身
  }

  // Member Function
  // Find
  ll root(ll x) { // 根の検索
    while (par[x] != x) {
      x = par[x] = par[par[x]]; // x の親の親を x の親とする
    }
    return x;
  }

  // Union(Unite, Merge)
  bool unite(ll x, ll y) {
    x = root(x);
    y = root(y);
    if (x == y)
      return false;
    // merge technique（データ構造をマージするテク．小を大にくっつける)
    if (siz[x] < siz[y])
      swap(x, y);
    siz[x] += siz[y];
    par[y] = x;
    return true;
  }

  bool same(ll x, ll y) { // 連結判定
    return root(x) == root(y);
  }

  ll size(ll x) { // 素集合のサイズ
    return siz[root(x)];
  }
};

// セグメント木
// 全て添字で扱うこと
//  segment_tree seg;
//  seg.build(配列名, 単位元)で宣言
//  seg.build(a,0)
struct segment_tree {
  ll n;         // vの要素数
  ll m;         // 葉の数
  vector<ll> v; // セグ木本体．ただの配列を使う
  ll id_e;      // 単位元
           // 区間の和なら0、区間の積なら1、最大値なら-1とか、最小値ならINF、最大公約数なら0

  // 二項演算
  ll binary_op(ll a, ll b) {
    return a +
           b; // 処理
              // 区間の和ならa+b、区間の積ならa*b、最大値ならmax(a,b)、最初値ならmin(a,b)、最大公約数ならgcd(a,b)
  }

  // 初期化関数．数列と単位元を受け取って初期化
  void build(vector<ll> a, ll b) {
    id_e = b;
    m = 1;
    while (m < (ll)a.size())
      m *= 2; // aの項数以上の2べきのうち最小のものを求める
    n = 2 * m - 1;
    v.resize(n);
    for (ll i = 0; i < (ll)a.size(); i++)
      v[m - 1 + i] = a[i]; // 葉(1段目)の値
    for (ll i = a.size(); i < m; i++)
      v[m - 1 + i] = id_e;            // 葉(1段目)の右端の0埋め
    for (ll i = m - 2; i >= 0; i--) { // 2段目以降を順番に埋めていく
      v[i] = binary_op(v[2 * i + 1], v[2 * i + 2]);
    }
  }

  // ある項の値をbに書き換え
  void update(ll a, ll b) {
    a += (m - 1);
    v[a] = b;                  // 葉(1段目)を書き換え
    while ((a - 1) / 2 != a) { // 2段目以降を順番に書き換え
      a = (a - 1) / 2;
      v[a] = binary_op(v[2 * a + 1], v[2 * a + 2]);
    }
  }

  // 区間和の補助関数
  // cur:今見ている頂点の，配列vでの添字
  //[l, r]:v[cur]がカバーする区間
  ll seg_sub(ll a, ll b, ll cur, ll l, ll r) {
    if (a <= l && r <= b)
      return v
          [cur]; // 今見ている頂点のカバーする区間が，[a,b]に完全に収まっている場合
    if (r < a || b < l)
      return id_e; // 今見ている頂点のカバーする区間が，[a,b]と全く被っていない場合
    return binary_op( // 今見ている頂点のカバーする区間が，[a,b]と一部被っている場合
        seg_sub(a, b, 2 * cur + 1, l, (l + r) / 2),
        seg_sub(a, b, 2 * cur + 2, (l + r) / 2 + 1, r));
  }

  // 区間[a, b]の和
  // 最上段の頂点から子へ再帰していく
  ll partial_sum(ll a, ll b) { return seg_sub(a, b, 0, 0, m - 1); }
};

// graph_d g(n);でn頂点のグラフを作成
// g.add_edge(a,b,cost);で頂点aから頂点bへのコストcostの辺が張られる
// g.dijkstra(s);で頂点sから各頂点への最短経路をダイクストラ法で探索できる
// ll dist=g.d[i];で探索結果を呼び出すことができる
struct edge {
  ll to, cost;
};
struct graph_d {
  ll V;
  vector<vector<edge>> G;
  vector<ll> d;

  graph_d(ll n) { init(n); }

  void init(ll n) {
    V = n;
    G.resize(V);
    d.resize(V);
    rep(i, V) { d[i] = INF; }
  }

  void add_edge(ll s, ll t, ll cost) {
    edge e;
    e.to = t, e.cost = cost;
    G[s].push_back(e);
  }

  void dijkstra(ll s) {
    rep(i, V) { d[i] = INF; }
    d[s] = 0;
    priority_queue<pll, vector<pll>, greater<pll>> que;
    que.push(pll(0, s));
    while (!que.empty()) {
      pll p = que.top();
      que.pop();
      ll v = p.second;
      if (d[v] < p.first)
        continue;
      for (auto e : G[v]) {
        if (d[e.to] > d[v] + e.cost) {
          d[e.to] = d[v] + e.cost;
          que.push(pll(d[e.to], e.to));
        }
      }
    }
  }
};

ll modpow(ll x, ll n) {
  x = x % mod;
  if (n == 0)
    return 1;
  else if (n % 2 == 1) {
    return (x * modpow(x, n - 1)) % mod;
  } else
    return modpow((x * x) % mod, n / 2) % mod;
}

ll modcom(ll n, ll k) {
  ll x = 1;
  for (ll i = n - k + 1; i <= n; i++) {
    x = x * i % mod;
  }
  ll y = 1;
  for (ll i = 1; i <= k; i++) {
    y = y * i % mod;
  }
  y = modpow(y, mod - 2);
  return x * y % mod;
}

bool is_prime(ll n) {
  switch (n) {
  case 0:
  case 1:
    return false;
  case 2:
  case 3:
    return true;
  }
  if (n % 2 == 0 || n % 3 == 0)
    return false;
  for (ll i = 5; i * i <= n; i += 6) {
    if (n % i == 0)
      return false;
    if (n % (i + 2) == 0)
      return false;
  }
  return true;
}

ll digsum(ll n) {
  int res = 0;
  while (n > 0) {
    res +=
        n % 10; // res++;だと桁数を求める関数,res+=n%10;なら格桁の和を求める関数
    n /= 10;
  }
  return res;
}

vector<ll> divisor(ll n) {
  vector<ll> ret;
  for (ll i = 1; i * i <= n; i++) {
    if (n % i == 0) {
      ret.push_back(i);
      if (i * i != n)
        ret.push_back(n / i);
    }
  }
  sort(ret.begin(), ret.end());
  return ret;
}

vector<ll> divisor_cnt(ll n) {
  vector<ll> cnt(n);
  for (ll i = 1; i <= n; i++) {
    for (ll j = i; j <= n; j += i) {
      cnt[j]++;
    }
  }
  return cnt;
}

map<ll, ll> prime_factor(ll n) {
  map<ll, ll> res;
  res[1] = 1;
  for (ll i = 2; i * i <= n; i++) {
    while (n % i == 0) {
      res[i]++;
      n /= i;
    }
  }
  if (n != 1)
    res[n] = 1;
  return res;
}

template <std::int_fast64_t Modulus> class ModInt {
  using i64 = std::int_fast64_t;

private:
  i64 m_value;

public:
  constexpr ModInt(const i64 x = 0) noexcept : m_value(x % Modulus) {
    if (m_value < 0)
      m_value += Modulus;
  }

  constexpr const i64 &value() const noexcept { return m_value; }

  constexpr ModInt &operator+=(const ModInt rhs) noexcept {
    m_value += rhs.m_value;
    if (m_value >= Modulus) {
      m_value -= Modulus;
    }
    return *this;
  }
  constexpr ModInt &operator-=(const ModInt rhs) noexcept {
    if (m_value < rhs.m_value) {
      m_value += Modulus;
    }
    m_value -= rhs.m_value;
    return *this;
  }
  constexpr ModInt &operator*=(const ModInt rhs) noexcept {
    m_value = m_value * rhs.m_value % Modulus;
    return *this;
  }
  constexpr ModInt &operator/=(ModInt rhs) noexcept {
    *this *= rhs.inv();
    return *this;
  }

  constexpr ModInt &operator++() noexcept {
    *this += 1;
    return *this;
  }
  constexpr ModInt operator++(int) noexcept {
    ModInt res = *this;
    *this += 1;
    return res;
  }
  constexpr ModInt &operator--() noexcept {
    *this -= 1;
    return *this;
  }
  constexpr ModInt operator--(int) noexcept {
    ModInt res = *this;
    *this -= 1;
    return res;
  }

  constexpr ModInt inv() const noexcept {
    i64 q = m_value;
    i64 b = Modulus, u = 1, v = 0;
    while (b) {
      i64 t = q / b;
      q -= t * b;
      std::swap(q, b);
      u -= t * v;
      std::swap(u, v);
    }
    u %= Modulus;
    if (u < 0)
      u += Modulus;
    return u;
  }

  constexpr ModInt pow(i64 k) const noexcept {
    ModInt res = 1;
    ModInt tmp;
    if (k < 0) {
      tmp = (*this).inv();
      k = -k;
    } else {
      tmp = *this;
    }
    for (; k > 0; k >>= 1) {
      if (k & 1)
        res *= tmp;
      tmp *= tmp;
    }
    return res;
  }

  friend constexpr ModInt operator+(const ModInt &lhs,
                                    const ModInt &rhs) noexcept {
    return ModInt<Modulus>(lhs) += rhs;
  }
  friend constexpr ModInt operator-(const ModInt &lhs,
                                    const ModInt &rhs) noexcept {
    return ModInt<Modulus>(lhs) -= rhs;
  }
  friend constexpr ModInt operator*(const ModInt &lhs,
                                    const ModInt &rhs) noexcept {
    return ModInt<Modulus>(lhs) *= rhs;
  }
  friend constexpr ModInt operator/(const ModInt &lhs,
                                    const ModInt &rhs) noexcept {
    return ModInt<Modulus>(lhs) /= rhs;
  }

  friend constexpr bool operator<(const ModInt &lhs,
                                  const ModInt &rhs) noexcept {
    return lhs.m_value < rhs.m_value;
  }
  friend constexpr bool operator>(const ModInt &lhs,
                                  const ModInt &rhs) noexcept {
    return lhs.m_value > rhs.m_value;
  }
  friend constexpr bool operator<=(const ModInt &lhs,
                                   const ModInt &rhs) noexcept {
    return lhs.m_value <= rhs.m_value;
  }
  friend constexpr bool operator>=(const ModInt &lhs,
                                   const ModInt &rhs) noexcept {
    return lhs.m_value >= rhs.m_value;
  }
  friend constexpr bool operator==(const ModInt &lhs,
                                   const ModInt &rhs) noexcept {
    return lhs.m_value == rhs.m_value;
  }
  friend constexpr bool operator!=(const ModInt &lhs,
                                   const ModInt &rhs) noexcept {
    return lhs.m_value != rhs.m_value;
  }

  friend std::istream &operator>>(std::istream &is, ModInt &rhs) {
    i64 a;
    is >> a;
    rhs = a;
    return is;
  }
  friend std::ostream &operator<<(std::ostream &os, const ModInt &rhs) {
    os << rhs.m_value;
    return os;
  }
};

int main() {

  ios::sync_with_stdio(false);
  cin.tie(0);

  vector<ll> a(10000);

  a = {
      0,   0,  0,   0,  0,   1,  0,   0,  0,   0,  3,   0,  0,   0, 0,   0,
      3,   3,  0,   0,  0,   0,  0,   1,  6,   0,  3,   0,  0,   0, 0,   0,
      3,   3,  6,   0,  0,   3,  0,   0,  0,   0,  3,   3,  6,   0, 6,   0,
      0,   0,  3,   0,  0,   1,  6,   0,  6,   6,  0,   0,  6,   0, 0,   0,
      0,   3,  3,   3,  6,   0,  6,   3,  6,   0,  0,   0,  6,   0, 0,   0,
      3,   3,  9,   0,  6,   3,  6,   0,  3,   6,  0,   0,  0,   0, 6,   1,
      6,   0,  6,   6,  0,   3,  12,  0,  6,   0,  0,   3,  6,   0, 0,   0,
      3,   3,  12,  0,  6,   3,  6,   0,  3,   6,  9,   0,  6,   0, 0,   0,
      3,   6,  3,   3,  6,   0,  6,   3,  12,  0,  3,   6,  6,   0, 6,   0,
      6,   3,  6,   0,  0,   1,  6,   3,  12,  6,  0,   0,  12,  0, 6,   0,
      6,   6,  12,  0,  0,   6,  0,   0,  6,   0,  12,  3,  6,   0, 6,   3,
      9,   6,  3,   6,  6,   0,  6,   0,  6,   0,  15,  6,  0,   0, 6,   0,
      3,   3,  12,  0,  12,  6,  6,   0,  3,   6,  6,   3,  12,  0, 6,   0,
      9,   6,  0,   0,  6,   3,  12,  1,  6,   6,  6,   6,  0,   0, 18,  0,
      12,  0,  3,   6,  12,  0,  0,   6,  3,   6,  12,  0,  12,  0, 0,   0,
      9,   3,  9,   6,  12,  3,  12,  0,  3,   6,  6,   0,  12,  0, 12,  0,
      9,   9,  0,   0,  6,   3,  6,   3,  12,  6,  9,   3,  6,   0, 12,  3,
      6,   3,  9,   6,  12,  6,  6,   0,  6,   0,  9,   6,  6,   0, 12,  3,
      6,   0,  9,   6,  6,   1,  6,   0,  21,  12, 6,   0,  12,  0, 12,  0,
      0,   6,  15,  6,  0,   6,  12,  0,  12,  0,  12,  0,  0,   0, 12,  0,
      12,  12, 3,   3,  18,  3,  6,   3,  6,   6,  9,   9,  18,  0, 6,   0,
      12,  0,  9,   6,  0,   3,  12,  3,  6,   6,  12,  6,  6,   0, 0,   0,
      15,  3,  18,  3,  18,  3,  12,  6,  3,   6,  9,   0,  12,  0, 12,  0,
      18,  12, 0,   0,  12,  3,  6,   0,  6,   6,  9,   6,  0,   0, 18,  1,
      18,  3,  12,  6,  6,   6,  12,  0,  15,  6,  12,  6,  18,  0, 0,   6,
      0,   9,  12,  0,  18,  0,  6,   3,  12,  0,  12,  12, 0,   0, 12,  0,
      3,   6,  12,  6,  18,  9,  18,  0,  9,   6,  18,  0,  6,   0, 6,   3,
      27,  6,  6,   6,  6,   3,  6,   0,  12,  6,  9,   0,  6,   0, 18,  0,
      9,   9,  15,  3,  12,  6,  6,   3,  9,   6,  12,  12, 18,  0, 18,  0,
      6,   6,  21,  6,  0,   0,  6,   3,  15,  6,  12,  6,  18,  0, 0,   0,
      12,  6,  6,   3,  6,   4,  18,  6,  12,  6,  3,   9,  30,  0, 18,  0,
      6,   6,  12,  6,  6,   9,  12,  0,  18,  6,  18,  0,  6,   0, 12,  0,
      6,   12, 6,   3,  18,  0,  6,   6,  6,   6,  15,  3,  24,  0, 6,   3,
      18,  0,  12,  6,  12,  6,  24,  0,  15,  18, 9,   6,  0,   0, 18,  3,
      6,   0,  15,  12, 12,  6,  6,   0,  18,  0,  6,   3,  12,  0, 12,  6,
      6,   9,  9,   6,  24,  3,  24,  0,  9,   12, 6,   6,  12,  0, 12,  0,
      21,  9,  15,  6,  12,  3,  18,  3,  12,  6,  12,  6,  0,   0, 12,  0,
      12,  6,  24,  0,  6,   12, 6,   1,  9,   6,  12,  6,  24,  0, 18,  3,
      12,  6,  6,   12, 24,  0,  12,  6,  15,  6,  18,  0,  18,  0, 0,   0,
      18,  9,  21,  12, 0,   6,  18,  0,  9,   6,  6,   6,  12,  0, 12,  0,
      9,   9,  27,  6,  6,   3,  18,  6,  21,  6,  6,   12, 12,  0, 12,  0,
      24,  12, 0,   0,  24,  3,  24,  6,  12,  12, 18,  0,  0,   0, 12,  0,
      18,  3,  15,  6,  12,  9,  6,   0,  15,  6,  9,   12, 24,  0, 12,  3,
      6,   6,  21,  6,  18,  3,  18,  0,  21,  12, 15,  6,  6,   0, 12,  3,
      12,  9,  18,  9,  12,  6,  6,   6,  24,  0,  18,  3,  24,  0, 6,   6,
      0,   6,  9,   6,  6,   4,  30,  0,  18,  12, 9,   6,  24,  0, 18,  0,
      9,   12, 21,  6,  6,   12, 12,  0,  18,  0,  21,  15, 12,  0, 12,  6,
      12,  12, 18,  0,  18,  0,  6,   0,  9,   12, 18,  6,  30,  0, 0,   0,
      24,  6,  9,   3,  12,  6,  30,  3,  6,   12, 6,   12, 12,  0, 36,  0,
      6,   3,  27,  12, 12,  6,  6,   6,  24,  0,  12,  6,  12,  0, 18,  0,
      18,  15, 18,  3,  18,  6,  12,  6,  6,   12, 3,   6,  6,   0, 12,  3,
      39,  3,  12,  12, 12,  3,  18,  0,  21,  12, 21,  6,  18,  0, 12,  0,
      9,   9,  12,  9,  24,  9,  12,  6,  12,  6,  33,  0,  6,   0, 18,  0,
      9,   15, 12,  6,  24,  6,  6,   3,  15,  6,  15,  12, 18,  0, 18,  1,
      18,  6,  12,  6,  6,   0,  24,  6,  24,  12, 18,  6,  24,  0, 6,   6,
      12,  15, 24,  0,  24,  6,  6,   0,  18,  0,  15,  18, 12,  0, 24,  0,
      12,  6,  12,  12, 18,  6,  24,  0,  0,   6,  24,  3,  12,  0, 12,  6,
      30,  9,  6,   12, 24,  12, 12,  0,  15,  18, 12,  0,  18,  0, 24,  6,
      15,  6,  18,  3,  18,  3,  12,  6,  24,  12, 12,  12, 6,   0, 36,  0,
      18,  3,  6,   12, 6,   9,  12,  0,  3,   12, 36,  0,  30,  0, 12,  0,
      18,  6,  12,  9,  12,  6,  24,  3,  18,  12, 15,  9,  24,  0, 18,  6,
      18,  9,  18,  12, 6,   6,  24,  3,  24,  0,  12,  12, 12,  0, 6,   0,
      27,  12, 18,  3,  30,  3,  18,  6,  0,   12, 15,  6,  18,  0, 24,  0,
      9,   6,  9,   12, 18,  7,  24,  0,  24,  12, 15,  12, 24,  0, 24,  0,
      6,   9,  30,  9,  6,   6,  0,   9,  33,  12, 36,  0,  12,  0, 18,  0,
      6,   21, 12,  6,  36,  6,  0,   3,  18,  6,  12,  6,  24,  0, 12,  3,
      24,  6,  9,   12, 6,   6,  30,  6,  18,  12, 9,   9,  12,  0, 30,  3,
      18,  3,  27,  6,  30,  12, 12,  0,  24,  0,  27,  12, 6,   0, 24,  3,
      18,  18, 9,   6,  18,  0,  12,  3,  33,  18, 12,  9,  6,   0, 12,  6,
      30,  0,  24,  12, 12,  0,  30,  6,  6,   6,  0,   6,  24,  0, 12,  0,
      18,  15, 33,  6,  30,  15, 18,  0,  9,   12, 24,  9,  12,  0, 18,  6,
      27,  18, 15,  6,  18,  3,  24,  0,  6,   6,  36,  12, 18,  0, 12,  3,
      30,  3,  12,  6,  12,  15, 6,   0,  18,  12, 15,  9,  30,  0, 18,  6,
      12,  12, 18,  6,  6,   3,  24,  1,  27,  12, 18,  6,  18,  0, 24,  0,
      18,  15, 15,  21, 30,  6,  12,  12, 18,  0,  30,  6,  24,  0, 6,   0,
      18,  6,  36,  12, 6,   6,  36,  0,  6,   12, 12,  12, 24,  0, 30,  0,
      9,   6,  18,  0,  18,  12, 12,  6,  24,  6,  9,   15, 12,  0, 12,  6,
      30,  9,  18,  0,  42,  3,  18,  6,  12,  18, 33,  12, 12,  0, 18,  0,
      21,  12, 12,  12, 24,  6,  30,  0,  27,  18, 6,   12, 6,   0, 24,  0,
      18,  15, 30,  0,  18,  12, 6,   0,  21,  6,  21,  12, 24,  0, 30,  0,
      6,   6,  6,   12, 24,  0,  30,  12, 9,   12, 21,  3,  24,  0, 12,  3,
      21,  18, 9,   18, 18,  6,  30,  3,  42,  6,  21,  6,  30,  0, 6,   3,
      24,  9,  36,  6,  6,   9,  12,  6,  18,  12, 33,  9,  12,  0, 24,  9,
      9,   6,  3,   18, 36,  6,  18,  0,  24,  6,  6,   6,  18,  0, 12,  0,
      30,  3,  39,  12, 12,  7,  18,  0,  15,  18, 18,  9,  36,  0, 24,  6,
      6,   18, 30,  0,  18,  9,  18,  3,  24,  6,  21,  12, 24,  0, 30,  3,
      33,  24, 12,  6,  18,  6,  6,   6,  18,  6,  18,  12, 18,  0, 24,  6,
      36,  3,  18,  6,  0,   12, 30,  0,  9,   24, 18,  0,  24,  0, 18,  0,
      0,   12, 30,  15, 30,  6,  18,  3,  30,  0,  24,  18, 12,  0, 36,  3,
      24,  12, 15,  18, 18,  6,  24,  3,  24,  12, 18,  12, 24,  0, 0,   6,
      39,  6,  24,  3,  18,  3,  42,  6,  12,  12, 15,  9,  30,  0, 12,  0,
      18,  6,  18,  12, 24,  15, 12,  0,  12,  12, 30,  12, 12,  0, 18,  0,
      15,  15, 18,  18, 30,  3,  24,  12, 9,   6,  48,  0,  18,  0, 30,  0,
      21,  6,  12,  12, 24,  12, 18,  3,  48,  24, 6,   6,  18,  0, 36,  0,
      12,  15, 27,  6,  12,  12, 18,  6,  27,  6,  12,  9,  18,  0, 24,  6,
      18,  18, 21,  0,  36,  0,  12,  0,  18,  12, 21,  18, 24,  0, 12,  1,
      18,  9,  21,  18, 6,   9,  42,  3,  36,  12, 12,  12, 30,  0, 12,  6,
      21,  12, 36,  6,  24,  9,  12,  6,  12,  12, 24,  12, 18,  0, 42,  0,
      15,  6,  15,  15, 42,  6,  30,  6,  12,  12, 18,  12, 18,  0, 6,   6,
      36,  0,  30,  18, 6,   0,  6,   0,  30,  18, 18,  0,  42,  0, 18,  6,
      15,  18, 24,  0,  12,  6,  36,  9,  33,  12, 12,  12, 18,  0, 36,  0,
      21,  21, 15,  18, 18,  15, 18,  0,  18,  6,  42,  6,  24,  0, 18,  3,
      42,  6,  18,  12, 12,  12, 18,  0,  15,  12, 18,  12, 36,  0, 30,  12,
      3,   21, 18,  0,  30,  6,  24,  0,  27,  12, 18,  12, 6,   0, 12,  0,
      36,  15, 15,  3,  36,  12, 18,  6,  30,  6,  33,  12, 12,  0, 12,  6,
      24,  6,  54,  18, 12,  3,  36,  9,  9,   12, 12,  18, 36,  0, 6,   0,
      21,  15, 27,  9,  24,  12, 30,  6,  24,  6,  27,  18, 12,  0, 30,  0,
      21,  12, 18,  6,  30,  0,  18,  0,  21,  18, 21,  6,  30,  0, 24,  3,
      6,   6,  15,  27, 12,  10, 42,  6,  36,  12, 12,  6,  24,  0, 24,  6,
      12,  12, 48,  6,  18,  12, 0,   3,  51,  6,  30,  6,  24,  0, 24,  0,
      30,  21, 15,  12, 24,  9,  18,  6,  18,  12, 30,  9,  24,  0, 18,  0,
      27,  18, 9,   6,  18,  9,  54,  0,  18,  24, 21,  18, 12,  0, 24,  0,
      12,  0,  30,  9,  30,  12, 6,   9,  24,  6,  15,  15, 18,  0, 30,  3,
      33,  18, 21,  12, 42,  3,  30,  6,  6,   24, 27,  6,  12,  0, 24,  3,
      42,  6,  42,  9,  12,  6,  18,  6,  24,  12, 12,  12, 54,  0, 6,   12,
      18,  6,  18,  18, 30,  12, 30,  0,  18,  0,  27,  18, 24,  0, 18,  0,
      15,  24, 21,  6,  24,  3,  36,  6,  6,   6,  45,  21, 18,  0, 18,  6,
      33,  3,  18,  0,  24,  15, 30,  0,  30,  24, 12,  6,  36,  0, 24,  3,
      21,  24, 18,  15, 30,  3,  12,  6,  42,  12, 12,  12, 6,   0, 54,  6,
      30,  15, 24,  18, 24,  6,  12,  0,  9,   6,  30,  0,  48,  0, 24,  0,
      15,  12, 39,  12, 24,  6,  24,  6,  15,  30, 12,  6,  24,  0, 24,  3,
      24,  12, 24,  6,  6,   18, 12,  4,  54,  6,  21,  18, 18,  0, 36,  6,
      24,  9,  30,  12, 24,  9,  36,  6,  12,  18, 42,  3,  30,  0, 6,   9,
      21,  6,  12,  30, 30,  6,  30,  0,  27,  12, 9,   18, 30,  0, 36,  0,
      18,  9,  42,  6,  24,  12, 0,   6,  51,  12, 24,  12, 12,  0, 18,  6,
      12,  18, 6,   6,  36,  3,  54,  9,  18,  6,  27,  12, 18,  0, 30,  0,
      39,  9,  18,  18, 12,  9,  30,  6,  21,  12, 27,  18, 24,  0, 12,  0,
      42,  18, 42,  6,  24,  15, 18,  0,  24,  12, 45,  12, 6,   0, 54,  0,
      15,  21, 6,   6,  30,  6,  18,  12, 24,  18, 30,  6,  36,  0, 12,  3,
      24,  12, 18,  18, 18,  12, 24,  0,  33,  12, 27,  6,  42,  0, 18,  6,
      9,   15, 30,  6,  30,  6,  12,  6,  18,  6,  33,  15, 30,  0, 36,  3,
      27,  21, 33,  24, 30,  9,  24,  0,  12,  18, 33,  6,  6,   0, 18,  3,
      57,  12, 24,  18, 30,  9,  18,  0,  18,  12, 27,  12, 36,  0, 36,  6,
      12,  6,  27,  12, 30,  9,  24,  6,  39,  18, 12,  24, 12,  0, 30,  0,
      30,  6,  15,  15, 18,  3,  24,  18, 9,   12, 30,  9,  30,  0, 18,  6,
      42,  18, 30,  0,  6,   10, 48,  0,  24,  12, 12,  18, 48,  0, 30,  3,
      30,  15, 18,  6,  24,  18, 18,  0,  42,  6,  36,  15, 24,  0, 42,  12,
      21,  24, 12,  12, 24,  0,  12,  6,  18,  18, 60,  6,  30,  0, 12,  0,
      24,  0,  12,  18, 30,  15, 42,  0,  33,  30, 6,   6,  12,  0, 42,  3,
      27,  6,  33,  12, 36,  12, 18,  0,  30,  6,  18,  12, 12,  0, 18,  6,
      15,  27, 27,  6,  42,  6,  36,  9,  18,  30, 33,  9,  30,  0, 6,   6,
      54,  6,  36,  24, 24,  0,  30,  3,  12,  6,  21,  24, 30,  0, 24,  0,
      24,  12, 42,  9,  42,  21, 12,  12, 27,  12, 27,  6,  12,  0, 48,  6,
      12,  18, 12,  12, 36,  6,  30,  0,  24,  0,  42,  12, 12,  0, 36,  0,
      24,  15, 21,  21, 18,  6,  12,  9,  36,  18, 18,  15, 42,  0, 18,  6,
      9,   18, 48,  12, 30,  9,  24,  3,  33,  6,  18,  18, 18,  0, 36,  3,
      54,  24, 3,   12, 36,  9,  36,  6,  30,  12, 36,  12, 24,  0, 18,  6,
      24,  6,  42,  0,  24,  18, 18,  0,  9,   30, 39,  12, 42,  0, 36,  0,
      12,  12, 21,  12, 18,  12, 24,  6,  45,  6,  18,  24, 18,  0, 36,  0,
      42,  15, 18,  6,  24,  6,  12,  12, 18,  12, 30,  6,  18,  0, 30,  1,
      30,  9,  57,  9,  12,  9,  48,  6,  21,  24, 18,  12, 66,  0, 18,  6,
      9,   24, 24,  24, 30,  12, 18,  0,  48,  6,  24,  18, 18,  0, 24,  3,
      27,  18, 24,  12, 36,  6,  48,  6,  15,  18, 42,  6,  24,  0, 12,  12,
      36,  6,  6,   24, 12,  3,  48,  0,  48,  18, 0,   12, 18,  0, 36,  6,
      18,  9,  54,  15, 12,  12, 6,   6,  39,  6,  24,  18, 42,  0, 30,  0,
      33,  18, 24,  18, 18,  9,  18,  0,  15,  18, 54,  0,  36,  0, 24,  0,
      48,  24, 15,  18, 18,  12, 42,  9,  24,  12, 36,  21, 30,  0, 36,  12,
      24,  3,  30,  0,  48,  15, 12,  6,  15,  18, 18,  18, 24,  0, 30,  0,
      24,  24, 18,  9,  72,  0,  30,  6,  21,  18, 30,  6,  24,  0, 0,   6,
      24,  18, 42,  12, 6,   15, 36,  0,  30,  18, 30,  12, 24,  0, 6,   0,
      18,  12, 54,  9,  36,  9,  36,  9,  30,  6,  27,  27, 24,  0, 54,  6,
      21,  18, 21,  6,  36,  15, 36,  3,  30,  12, 6,   18, 30,  0, 18,  6,
      54,  0,  30,  21, 36,  9,  30,  6,  30,  24, 24,  6,  30,  0, 36,  12,
      9,   24, 24,  12, 18,  9,  30,  0,  48,  12, 24,  12, 12,  0, 48,  0,
      18,  12, 24,  24, 30,  6,  18,  12, 21,  12, 24,  0,  66,  0, 12,  0,
      30,  9,  24,  24, 18,  13, 42,  3,  18,  18, 27,  24, 24,  0, 30,  6,
      15,  18, 39,  12, 12,  9,  36,  12, 54,  12, 42,  18, 6,   0, 36,  0,
      51,  18, 12,  0,  66,  12, 24,  0,  6,   24, 51,  12, 24,  0, 24,  0,
      33,  6,  18,  18, 30,  6,  42,  3,  18,  30, 15,  15, 30,  0, 30,  6,
      30,  12, 48,  12, 24,  12, 12,  9,  36,  6,  36,  6,  12,  0, 30,  0,
      24,  21, 24,  15, 42,  12, 24,  6,  9,   18, 15,  9,  42,  0, 24,  12,
      66,  12, 30,  24, 6,   9,  54,  0,  36,  12, 21,  12, 36,  0, 24,  3,
      24,  15, 36,  6,  30,  24, 12,  6,  33,  6,  39,  21, 30,  0, 42,  6,
      12,  30, 30,  18, 36,  0,  48,  3,  36,  12, 30,  18, 18,  0, 24,  0,
      30,  6,  33,  21, 24,  6,  18,  12, 24,  12, 12,  15, 48,  0, 24,  6,
      21,  21, 60,  6,  24,  12, 18,  0,  30,  12, 15,  12, 24,  0, 24,  3,
      60,  27, 18,  12, 30,  3,  24,  9,  21,  12, 60,  18, 24,  0, 24,  9,
      33,  6,  36,  12, 24,  15, 42,  6,  27,  36, 27,  6,  42,  0, 42,  6,
      12,  15, 15,  24, 42,  18, 12,  0,  33,  6,  21,  18, 24,  0, 48,  3,
      36,  9,  24,  24, 30,  6,  36,  0,  39,  18, 60,  6,  18,  0, 12,  6,
      21,  27, 30,  0,  18,  6,  42,  6,  42,  18, 24,  9,  48,  0, 6,   6,
      18,  18, 18,  6,  18,  15, 30,  4,  60,  12, 30,  30, 18,  0, 36,  0,
      27,  18, 30,  18, 48,  9,  30,  12, 18,  6,  42,  9,  48,  0, 18,  6,
      42,  6,  30,  24, 12,  3,  36,  0,  36,  36, 15,  18, 30,  0, 66,  0,
      12,  18, 42,  9,  24,  15, 18,  12, 54,  6,  18,  21, 36,  0, 30,  6,
      24,  24, 12,  6,  24,  9,  36,  12, 6,   12, 45,  12, 36,  0, 36,  0,
      48,  3,  24,  18, 12,  24, 36,  0,  30,  12, 30,  21, 30,  0, 6,   15,
      18,  15, 66,  12, 42,  3,  12,  0,  39,  12, 30,  12, 18,  0, 54,  6,
      30,  24, 9,   12, 60,  12, 30,  12, 30,  24, 24,  18, 30,  0, 36,  0,
      27,  9,  45,  18, 24,  12, 24,  0,  36,  24, 12,  6,  60,  0, 18,  0,
      24,  15, 51,  9,  24,  12, 30,  12, 27,  18, 51,  18, 24,  0, 36,  6,
      27,  27, 12,  30, 36,  6,  30,  0,  12,  6,  42,  0,  18,  0, 18,  0,
      48,  12, 45,  24, 6,   15, 42,  6,  12,  18, 27,  9,  54,  0, 42,  3,
      33,  12, 15,  12, 54,  18, 30,  6,  36,  18, 21,  30, 18,  0, 48,  3,
      30,  18, 36,  6,  18,  0,  18,  12, 57,  24, 42,  6,  24,  0, 18,  12,
      36,  18, 30,  12, 36,  3,  78,  0,  24,  6,  6,   36, 42,  0, 24,  0,
      21,  15, 33,  6,  42,  18, 12,  3,  30,  12, 30,  27, 24,  0, 42,  12,
      39,  12, 30,  12, 30,  15, 30,  6,  12,  24, 54,  6,  24,  0, 18,  6,
      33,  12, 18,  24, 24,  7,  30,  0,  60,  24, 21,  12, 30,  0, 48,  6,
      18,  15, 39,  12, 18,  18, 18,  0,  48,  12, 54,  18, 42,  0, 30,  0,
      15,  30, 27,  18, 72,  0,  30,  15, 12,  12, 30,  18, 36,  0, 6,   3,
      60,  15, 24,  18, 6,   18, 54,  6,  21,  24, 24,  12, 30,  0, 30,  6,
      30,  15, 54,  6,  48,  12, 30,  12, 36,  0,  24,  3,  24,  0, 54,  6,
      18,  30, 15,  6,  42,  9,  36,  0,  21,  30, 15,  12, 12,  0, 24,  3,
      72,  0,  51,  39, 24,  12, 30,  3,  33,  18, 15,  12, 42,  0, 30,  12,
      27,  24, 51,  12, 42,  12, 18,  3,  42,  12, 39,  18, 12,  0, 30,  0,
      24,  21, 21,  21, 30,  6,  66,  12, 12,  6,  69,  21, 30,  0, 24,  6,
      45,  12, 12,  18, 42,  12, 18,  0,  39,  30, 33,  12, 54,  0, 12,  0,
      12,  18, 36,  9,  30,  9,  24,  9,  60,  12, 30,  12, 12,  0, 42,  9,
      42,  18, 45,  24, 42,  6,  12,  9,  24,  6,  30,  12, 42,  0, 30,  6,
      15,  15, 30,  12, 18,  12, 54,  6,  21,  30, 12,  33, 60,  0, 48,  0,
      30,  15, 42,  6,  24,  24, 30,  0,  36,  18, 33,  18, 12,  0, 60,  0,
      72,  15, 12,  9,  30,  12, 24,  15, 21,  24, 51,  12, 24,  0, 24,  6,
      12,  6,  33,  24, 36,  9,  54,  6,  27,  24, 30,  6,  48,  0, 24,  3,
      36,  27, 42,  15, 18,  18, 12,  6,  54,  6,  30,  15, 36,  0, 12,  12,
      18,  24, 21,  18, 30,  3,  60,  0,  33,  12, 36,  18, 48,  0, 24,  1,
      39,  12, 24,  18, 24,  9,  66,  6,  48,  24, 12,  12, 42,  0, 24,  6,
      18,  12, 63,  6,  36,  24, 18,  0,  39,  12, 39,  24, 24,  0, 54,  6,
      15,  24, 15,  24, 48,  3,  36,  12, 12,  24, 39,  18, 36,  0, 42,  6,
      42,  6,  60,  24, 12,  18, 18,  0,  45,  6,  6,   6,  72,  0, 30,  6,
      24,  9,  36,  12, 24,  9,  30,  15, 36,  18, 33,  24, 6,   0, 54,  0,
      33,  36, 18,  24, 36,  6,  18,  6,  24,  18, 75,  6,  18,  0, 18,  0,
      48,  9,  36,  18, 42,  9,  30,  0,  27,  36, 24,  15, 42,  0, 42,  18,
      36,  12, 18,  12, 72,  9,  24,  0,  54,  18, 21,  24, 12,  0, 60,  0,
      24,  24, 39,  12, 42,  18, 30,  6,  9,   12, 48,  12, 30,  0, 18,  12,
      36,  15, 48,  18, 18,  3,  42,  6,  42,  18, 18,  24, 54,  0, 36,  0,
      24,  36, 42,  0,  12,  27, 30,  6,  60,  6,  30,  24, 12,  0, 36,  3,
      42,  12, 18,  12, 36,  9,  30,  0,  15,  18, 33,  12, 54,  0, 30,  6,
      33,  21, 27,  30, 42,  12, 54,  9,  42,  24, 27,  6,  36,  0, 24,  12,
      24,  12, 45,  24, 12,  6,  30,  12, 69,  12, 42,  12, 30,  0, 24,  0,
      42,  18, 24,  15, 60,  9,  48,  18, 18,  24, 27,  12, 36,  0, 30,  0,
      54,  9,  30,  18, 24,  15, 48,  0,  24,  24, 45,  24, 24,  0, 18,  6,
      36,  9,  54,  15, 24,  12, 12,  6,  18,  12, 54,  18, 12,  0, 60,  3,
      48,  30, 12,  18, 60,  6,  24,  3,  36,  12, 33,  12, 36,  0, 36,  6,
      36,  3,  33,  24, 12,  13, 42,  12, 27,  18, 30,  12, 54,  0, 30,  12,
      21,  39, 54,  6,  54,  18, 18,  0,  33,  12, 36,  36, 36,  0, 30,  0,
      42,  33, 18,  18, 36,  12, 30,  3,  30,  12, 66,  6,  30,  0, 18,  12,
      63,  18, 24,  6,  30,  12, 48,  9,  6,   24, 30,  12, 42,  0, 72,  0,
      30,  12, 48,  3,  24,  15, 12,  12, 66,  18, 9,   36, 12,  0, 54,  0,
      54,  18, 15,  30, 36,  6,  12,  0,  21,  18, 54,  12, 30,  0, 6,   0,
      36,  15, 60,  18, 18,  15, 48,  6,  27,  24, 21,  12, 54,  0, 54,  9,
      12,  24, 48,  12, 48,  15, 54,  6,  36,  6,  39,  24, 24,  0, 24,  3,
      33,  24, 18,  18, 66,  12, 18,  12, 30,  12, 75,  15, 36,  0, 30,  9,
      24,  6,  21,  24, 24,  12, 60,  0,  66,  36, 12,  18, 36,  0, 24,  6,
      30,  18, 39,  18, 30,  12, 24,  9,  30,  6,  36,  18, 18,  0, 54,  12,
      33,  24, 36,  6,  66,  0,  30,  6,  12,  12, 33,  24, 54,  0, 18,  3,
      60,  3,  30,  24, 24,  21, 48,  0,  18,  30, 51,  12, 18,  0, 30,  12,
      33,  15, 18,  12, 30,  27, 24,  0,  48,  12, 45,  6,  30,  0, 72,  0,
      51,  18, 27,  27, 54,  9,  48,  12, 27,  30, 36,  18, 18,  0, 42,  3,
      36,  9,  45,  30, 6,   6,  36,  3,  51,  24, 24,  18, 72,  0, 18,  6,
      9,   36, 42,  0,  36,  9,  30,  12, 60,  30, 24,  15, 24,  0, 36,  6,
      30,  27, 27,  18, 42,  12, 48,  0,  42,  0,  33,  24, 24,  0, 30,  0,
      42,  12, 48,  9,  36,  9,  24,  6,  27,  36, 12,  9,  60,  0, 30,  12,
      15,  18, 42,  18, 36,  18, 24,  7,  48,  12, 54,  24, 30,  0, 78,  0,
      18,  18, 27,  24, 24,  6,  30,  12, 33,  18, 60,  15, 54,  0, 12,  12,
      36,  12, 36,  24, 30,  18, 54,  0,  18,  18, 18,  24, 84,  0, 54,  0,
      27,  15, 42,  6,  36,  12, 18,  9,  54,  6,  30,  30, 24,  0, 30,  9,
      60,  30, 36,  6,  42,  12, 30,  6,  6,   30, 60,  0,  18,  0, 24,  9,
      51,  18, 24,  33, 30,  0,  42,  12, 60,  18, 18,  36, 18,  0, 24,  0,
      18,  9,  78,  12, 48,  24, 12,  0,  48,  6,  12,  18, 42,  0, 48,  0,
      30,  27, 18,  6,  48,  3,  66,  21, 18,  18, 33,  12, 48,  0, 30,  6,
      63,  21, 18,  36, 24,  15, 60,  6,  36,  30, 36,  0,  48,  0, 48,  3,
      36,  30, 42,  18, 24,  24, 12,  6,  21,  6,  72,  12, 36,  0, 60,  6,
      12,  18, 15,  24, 60,  9,  30,  0,  39,  30, 54,  12, 18,  0, 18,  3,
      60,  9,  57,  24, 6,   18, 48,  6,  60,  18, 18,  9,  48,  0, 24,  12,
      18,  18, 39,  6,  42,  15, 36,  6,  36,  18, 18,  30, 18,  0, 42,  6,
      39,  27, 27,  18, 48,  12, 42,  12, 24,  18, 27,  9,  30,  0, 24,  9,
      81,  12, 72,  12, 30,  6,  36,  0,  33,  42, 39,  30, 42,  0, 12,  3,
      12,  6,  24,  18, 48,  12, 48,  3,  63,  24, 24,  27, 30,  0, 78,  6,
      36,  18, 36,  30, 30,  12, 36,  12, 30,  6,  60,  12, 48,  0, 24,  0,
      36,  21, 30,  24, 30,  12, 48,  0,  36,  12, 24,  27, 36,  0, 42,  12,
      27,  24, 54,  6,  18,  12, 48,  0,  30,  6,  72,  24, 12,  0, 30,  3,
      45,  24, 0,   18, 78,  15, 18,  18, 39,  18, 39,  9,  36,  0, 24,  6,
      39,  12, 30,  18, 30,  16, 48,  0,  36,  30, 12,  12, 60,  0, 42,  3,
      24,  21, 84,  33, 30,  12, 18,  18, 48,  12, 36,  12, 30,  0, 48,  9,
      42,  36, 42,  6,  48,  3,  42,  0,  33,  24, 30,  12, 36,  0, 36,  6,
      54,  12, 30,  30, 6,   21, 66,  0,  39,  24, 36,  24, 36,  0, 24,  12,
      30,  15, 54,  12, 78,  30, 6,   0,  33,  12, 27,  30, 30,  0, 36,  6,
      18,  36, 36,  6,  66,  3,  60,  6,  18,  30, 42,  0,  12,  0, 36,  6,
      54,  6,  33,  24, 24,  12, 54,  0,  42,  12, 15,  12, 60,  0, 30,  0,
      21,  18, 75,  18, 48,  18, 18,  15, 30,  24, 42,  33, 36,  0, 30,  6,
      45,  24, 9,   30, 36,  3,  54,  15, 24,  18, 63,  18, 42,  0, 24,  0,
      75,  6,  30,  9,  30,  15, 42,  12, 33,  36, 21,  24, 60,  0, 54,  9,
      30,  30, 48,  12, 18,  12, 24,  0,  66,  12, 24,  18, 36,  0, 72,  6,
      36,  15, 27,  27, 30,  6,  12,  18, 24,  6,  78,  15, 42,  0, 12,  6,
      27,  24, 51,  18, 36,  12, 60,  3,  51,  30, 12,  24, 36,  0, 30,  0,
      48,  12, 21,  6,  36,  24, 54,  6,  42,  6,  36,  36, 6,   0, 54,  12,
      27,  15, 18,  18, 66,  6,  42,  0,  15,  30, 63,  12, 48,  0, 36,  3,
      63,  12, 36,  30, 18,  9,  48,  3,  48,  36, 30,  12, 42,  0, 72,  6,
      36,  30, 30,  12, 24,  12, 6,   15, 75,  18, 30,  6,  36,  0, 24,  0,
      18,  36, 48,  18, 60,  18, 60,  12, 33,  12, 33,  15, 72,  0, 18,  9,
      54,  15, 21,  30, 36,  12, 30,  0,  42,  24, 48,  18, 36,  0, 24,  6,
      18,  15, 81,  12, 12,  27, 36,  12, 30,  6,  36,  18, 24,  0, 48,  6,
      36,  36, 27,  6,  48,  9,  36,  3,  36,  36, 36,  24, 30,  0, 24,  1,
      42,  6,  66,  27, 24,  18, 48,  12, 51,  18, 24,  18, 84,  0, 24,  6,
      12,  9,  63,  18, 48,  9,  30,  0,  36,  12, 33,  24, 30,  0, 72,  0,
      42,  48, 36,  18, 42,  12, 42,  15, 24,  12, 60,  15, 24,  0, 12,  21,
      72,  3,  42,  30, 24,  18, 36,  6,  42,  18, 30,  12, 42,  0, 48,  12,
      12,  24, 24,  18, 66,  6,  24,  0,  93,  12, 51,  30, 12,  0, 54,  6,
      18,  27, 24,  24, 36,  12, 30,  0,  45,  18, 60,  6,  54,  0, 24,  0,
      51,  24, 21,  18, 30,  6,  72,  6,  6,   18, 21,  36, 42,  0, 48,  12,
      27,  24, 36,  6,  30,  27, 30,  6,  39,  18, 51,  36, 30,  0, 42,  0,
      66,  18, 36,  6,  66,  9,  24,  12, 24,  24, 78,  12, 36,  0, 36,  12,
      60,  15, 42,  24, 6,   15, 54,  0,  33,  30, 21,  30, 42,  0, 54,  0,
      24,  9,  60,  9,  36,  24, 24,  6,  66,  12, 48,  18, 54,  0, 30,  0,
      30,  39, 30,  18, 48,  6,  42,  12, 33,  24, 33,  12, 60,  0, 18,  6,
      42,  24, 42,  24, 6,   12, 72,  6,  42,  30, 18,  9,  30,  0, 24,  15,
      30,  18, 60,  12, 54,  15, 24,  0,  48,  24, 33,  12, 36,  0, 66,  6,
      36,  18, 21,  30, 72,  3,  24,  9,  27,  30, 30,  18, 42,  0, 42,  0,
      72,  6,  39,  42, 24,  18, 60,  3,  24,  18, 36,  18, 30,  0, 54,  6,
      27,  33, 60,  12, 24,  24, 18,  18, 30,  12, 21,  33, 48,  0, 78,  12,
      78,  12, 30,  12, 42,  12, 48,  0,  24,  12, 75,  18, 24,  0, 18,  0,
      33,  24, 30,  21, 42,  15, 30,  12, 39,  30, 51,  12, 54,  0, 36,  12,
      18,  12, 48,  24, 78,  18, 18,  6,  78,  6,  24,  30, 12,  0, 42,  0,
      45,  18, 15,  27, 42,  0,  54,  18, 36,  18, 36,  6,  48,  0, 30,  12,
      36,  21, 45,  6,  24,  7,  54,  0,  27,  42, 33,  24, 72,  0, 42,  0,
      48,  24, 45,  18, 18,  15, 36,  15, 66,  6,  66,  30, 18,  0, 48,  0,
      27,  39, 30,  18, 66,  27, 12,  12, 18,  24, 60,  6,  66,  0, 42,  0,
      42,  6,  33,  21, 36,  12, 42,  6,  21,  36, 33,  21, 48,  0, 66,  12,
      6,   18, 75,  24, 36,  12, 18,  0,  81,  12, 42,  30, 36,  0, 24,  0,
      30,  30, 30,  6,  60,  9,  60,  6,  24,  30, 30,  6,  30,  0, 30,  12,
      75,  18, 30,  24, 24,  15, 78,  0,  42,  24, 18,  30, 42,  0, 30,  12,
      21,  12, 48,  9,  60,  21, 30,  12, 24,  24, 39,  21, 24,  0, 54,  3,
      39,  30, 33,  24, 72,  12, 60,  0,  18,  24, 57,  12, 24,  0, 24,  3,
      90,  9,  12,  21, 36,  12, 30,  18, 84,  24, 30,  9,  60,  0, 36,  18,
      18,  24, 78,  18, 24,  18, 48,  6,  24,  0,  45,  30, 24,  0, 66,  3,
      60,  36, 21,  42, 42,  6,  30,  6,  33,  12, 60,  21, 36,  0, 6,   6,
      36,  15, 36,  30, 48,  21, 48,  0,  39,  36, 36,  6,  54,  0, 66,  3,
      18,  18, 33,  24, 36,  18, 30,  9,  66,  6,  15,  36, 24,  0, 96,  6,
      30,  12, 42,  6,  36,  6,  36,  9,  27,  36, 42,  12, 42,  0, 18,  6,
      51,  12, 78,  18, 30,  9,  54,  12, 39,  24, 24,  33, 66,  0, 36,  9,
      45,  33, 36,  12, 18,  27, 36,  0,  78,  12, 48,  24, 30,  0, 42,  9,
      48,  21, 18,  9,  60,  12, 54,  6,  21,  24, 72,  3,  66,  0, 18,  18,
      33,  12, 21,  36, 36,  6,  36,  6,  60,  36, 36,  18, 48,  0, 24,  0,
      30,  24, 87,  24, 24,  27, 42,  6,  60,  18, 66,  6,  18,  0, 36,  6,
      39,  36, 30,  18, 36,  9,  30,  0,  18,  18, 51,  12, 48,  0, 54,  0,
      48,  18, 36,  30, 36,  30, 66,  3,  12,  18, 15,  39, 60,  0, 24,  12,
      66,  6,  54,  12, 48,  6,  18,  7,  30,  24, 48,  18, 30,  0, 84,  0,
      30,  48, 12,  15, 60,  9,  42,  18, 42,  18, 42,  18, 48,  0, 30,  9,
      48,  21, 69,  36, 12,  12, 48,  0,  57,  18, 24,  24, 66,  0, 36,  6,
      24,  21, 69,  6,  54,  12, 30,  18, 72,  18, 30,  30, 18,  0, 42,  0,
      42,  42, 12,  18, 42,  6,  54,  9,  42,  12, 72,  18, 24,  0, 24,  3,
      78,  0,  24,  24, 30,  15, 60,  6,  42,  30, 39,  21, 36,  0, 54,  12,
      27,  24, 42,  24, 72,  21, 30,  0,  48,  18, 24,  30, 12,  0, 30,  3,
      24,  15, 72,  33, 42,  6,  24,  24, 12,  24, 66,  12, 60,  0, 24,  6,
      63,  12, 42,  18, 24,  18, 84,  6,  30,  24, 24,  6,  90,  0, 72,  6,
      21,  24, 30,  18, 18,  30, 24,  6,  66,  18, 54,  18, 36,  0, 36,  12,
      60,  27, 30,  18, 90,  18, 18,  0,  18,  24, 48,  24, 30,  0, 36,  6,
      36,  18, 66,  36, 30,  3,  66,  3,  57,  48, 12,  18, 36,  0, 48,  6,
      36,  21, 48,  0,  60,  12, 36,  12, 72,  0,  36,  30, 30,  0, 48,  0,
      33,  30, 48,  9,  54,  9,  36,  24, 18,  30, 42,  18, 54,  0, 12,  0,
      54,  12, 21,  24, 30,  21, 72,  0,  66,  24, 27,  18, 36,  0, 24,  0,
      45,  24, 78,  0,  42,  21, 24,  12, 39,  30, 54,  30, 24,  0, 84,  15,
      24,  24, 9,   30, 54,  9,  48,  6,  33,  18, 57,  18, 30,  0, 60,  3,
      54,  27, 33,  30, 36,  24, 42,  0,  54,  18, 39,  24, 54,  0, 60,  18,
      24,  15, 75,  12, 24,  12, 42,  0,  39,  12, 36,  36, 36,  0, 30,  3,
      66,  42, 15,  24, 72,  12, 48,  12, 42,  12, 48,  15, 24,  0, 18,  18,
      60,  6,  60,  18, 36,  9,  24,  6,  27,  36, 30,  24, 90,  0, 60,  3,
      21,  18, 54,  24, 48,  18, 18,  12, 51,  24, 39,  18, 18,  0, 72,  12,
      42,  21, 36,  24, 36,  6,  36,  0,  33,  18, 42,  0,  60,  0, 18,  6,
      42,  21, 39,  39, 36,  13, 84,  6,  24,  18, 30,  24, 78,  0, 36,  3,
      54,  39, 51,  18, 30,  21, 24,  3,  60,  12, 87,  42, 30,  0, 36,  6,
      30,  15, 36,  12, 54,  18, 42,  12, 27,  24, 84,  15, 42,  0, 18,  9,
      54,  18, 30,  30, 48,  12, 72,  0,  54,  42, 9,   12, 36,  0, 60,  0,
      27,  21, 78,  18, 42,  30, 30,  6,  54,  6,  30,  18, 24,  0, 60,  12,
      42,  36, 48,  24, 54,  6,  36,  15, 12,  48, 21,  12, 30,  0, 36,  0,
      102, 6,  18,  12, 24,  9,  60,  12, 48,  24, 33,  30, 66,  0, 30,  12,
      30,  15, 60,  12, 54,  36, 30,  0,  36,  6,  72,  18, 36,  0, 54,  0,
      30,  36, 9,   15, 60,  0,  60,  15, 39,  12, 63,  18, 42,  0, 30,  18,
      60,  21, 57,  30, 0,   18, 54,  3,  75,  30, 48,  24, 42,  0, 24,  12,
      36,  42, 57,  9,  48,  9,  36,  6,  45,  12, 24,  48, 54,  0, 66,  0,
      45,  33, 30,  18, 54,  18, 36,  0,  36,  6,  54,  30, 54,  0, 36,  0,
      66,  12, 42,  21, 24,  18, 48,  6,  21,  48, 42,  12, 60,  0, 84,  12,
      0,   12, 54,  24, 36,  18, 18,  12, 81,  18, 33,  18, 12,  0, 66,  3,
      66,  6,  33,  48, 48,  6,  24,  24, 36,  18, 60,  6,  36,  0, 24,  6,
      39,  21, 42,  18, 42,  12, 60,  0,  24,  30, 33,  36, 72,  0, 30,  0,
      36,  36, 42,  12, 36,  15, 24,  15, 75,  30, 63,  27, 24,  0, 42,  6,
      63,  30, 18,  12, 108, 9,  48,  12, 24,  12, 72,  18, 30,  0, 54,  6,
      30,  9,  63,  27, 48,  15, 36,  6,  48,  36, 18,  12, 54,  0, 42,  9,
      36,  36, 63,  18, 36,  24, 36,  0,  75,  6,  63,  24, 36,  0, 48,  6,
      27,  39, 30,  18, 30,  9,  54,  18, 36,  18, 39,  21, 66,  0, 30,  0,
      54,  18, 42,  36, 12,  24, 108, 0,  30,  24, 42,  12, 48,  0, 24,  0,
      15,  9,  48,  18, 66,  24, 24,  12, 54,  12, 36,  21, 54,  0, 54,  18,
      45,  42, 36,  24, 42,  3,  36,  0,  42,  48, 42,  12, 36,  0, 36,  1,
      60,  18, 36,  18, 36,  15, 54,  9,  60,  30, 24,  21, 48,  0, 24,  18,
      24,  18, 90,  6,  72,  15, 36,  9,  48,  6,  36,  42, 48,  0, 78,  3,
      54,  27, 18,  36, 48,  15, 54,  12, 30,  24, 84,  12, 18,  0, 18,  12,
      105, 12, 24,  30, 30,  18, 36,  0,  60,  30, 27,  12, 48,  0, 90,  6,
      18,  18, 33,  21, 42,  24, 24,  12, 45,  24, 60,  36, 36,  0, 66,  6,
      27,  15, 42,  24, 60,  12, 18,  9,  30,  18, 84,  12, 72,  0, 12,  6,
      42,  21, 45,  12, 18,  9,  96,  12, 21,  30, 30,  24, 66,  0, 48,  12,
      42,  18, 36,  18, 24,  24, 24,  0,  30,  12, 27,  42, 18,  0, 72,  0,
      84,  27, 54,  15, 102, 12, 36,  6,  39,  36, 36,  15, 36,  0, 30,  15,
      57,  12, 57,  42, 30,  9,  60,  6,  27,  42, 27,  30, 36,  0, 54,  6,
      24,  21, 78,  12, 42,  18, 18,  12, 84,  18, 54,  18, 48,  0, 66,  12,
      15,  36, 30,  18, 72,  9,  66,  0,  27,  18, 24,  6,  78,  0, 42,  6,
      81,  27, 27,  36, 24,  24, 48,  0,  72,  18, 39,  30, 42,  0, 18,  18,
      30,  24, 78,  6,  18,  18, 36,  0,  48,  30, 84,  6,  18,  0, 54,  0,
      42,  36, 12,  30, 90,  12, 48,  18, 24,  18, 21,  18, 48,  0, 60,  0,
      60,  6,  30,  42, 24,  18, 66,  0,  27,  36, 24,  18, 54,  0, 48,  6,
      30,  18, 90,  15, 42,  9,  48,  18, 42,  6,  45,  24, 36,  0, 48,  0,
      78,  39, 27,  12, 42,  27, 48,  6,  45,  18, 72,  36, 48,  0, 18,  9,
      66,  9,  54,  33, 18,  18, 66,  12, 39,  36, 45,  12, 72,  0, 48,  12,
      21,  39, 33,  18, 60,  18, 36,  0,  78,  18, 39,  36, 24,  0, 30,  0,
      30,  30, 54,  21, 66,  6,  30,  21, 39,  18, 60,  15, 72,  0, 30,  18,
      45,  12, 39,  18, 60,  6,  66,  15, 36,  30, 12,  18, 60,  0, 60,  0,
      18,  33, 57,  18, 24,  24, 42,  6,  66,  12, 81,  42, 18,  0, 36,  6,
      42,  18, 24,  24, 72,  0,  18,  0,  30,  30, 87,  18, 36,  0, 42,  3,
      45,  12, 36,  42, 24,  25, 30,  6,  72,  24, 18,  18, 60,  0, 102, 12,
      42,  12, 90,  12, 24,  27, 24,  12, 69,  24, 30,  18, 42,  0, 48,  0,
      42,  45, 39,  15, 60,  18, 30,  12, 33,  24, 72,  18, 36,  0, 24,  12,
      51,  24, 39,  36, 24,  6,  120, 0,  72,  24, 30,  30, 30,  0, 24,  12,
      72,  18, 54,  3,  84,  30, 30,  21, 42,  24, 30,  18, 30,  0, 54,  0,
      36,  30, 24,  30, 72,  9,  72,  6,  30,  24, 36,  24, 30,  0, 30,  0,
      90,  12, 48,  27, 24,  6,  54,  12, 39,  36, 18,  18, 78,  0, 36,  12,
      18,  39, 66,  6,  54,  18, 36,  0,  54,  18, 42,  12, 30,  0, 78,  0,
      48,  45, 27,  36, 36,  9,  54,  15, 6,   12, 99,  15, 48,  0, 24,  3,
      60,  12, 45,  36, 36,  30, 24,  12, 57,  30, 42,  18, 54,  0, 36,  6,
      45,  24, 63,  30, 60,  12, 42,  6,  102, 18, 30,  33, 18,  0, 84,  12,
      54,  24, 39,  12, 42,  0,  36,  0,  54,  24, 60,  12, 42,  0, 48,  6,
      30,  9,  93,  24, 18,  21, 60,  6,  21,  36, 18,  54, 102, 0, 30,  18,
      36,  21, 48,  12, 30,  27, 42,  3,  54,  12, 66,  36, 36,  0, 48,  9,
      45,  33, 30,  9,  84,  18, 30,  12, 33,  36, 51,  12, 54,  0, 36,  18,
      42,  12, 30,  36, 24,  9,  72,  0,  48,  30, 36,  6,  78,  0, 42,  0,
      18,  24, 63,  21, 36,  18, 24,  15, 66,  0,  42,  27, 54,  0, 30,  9,
      51,  45, 45,  24, 48,  12, 72,  12, 33,  24, 39,  30, 66,  0, 18,  6,
      69,  12, 36,  24, 36,  18, 90,  6,  60,  24, 36,  27, 36,  0, 60,  18,
      33,  21, 84,  12, 36,  30, 18,  0,  33,  24, 51,  30, 24,  0, 84,  0,
      57,  33, 36,  21, 84,  12, 30,  12, 33,  36, 63,  18, 24,  0, 30,  6,
      90,  21, 66,  30, 30,  24, 36,  0,  54,  12, 51,  18, 78,  0, 36,  0,
      18,  18, 54,  21, 48,  12, 66,  18, 21,  18, 33,  21, 42,  0, 66,  6,
      48,  54, 21,  30, 66,  12, 66,  0,  24,  24, 63,  24, 36,  0, 42,  3,
      60,  18, 30,  6,  36,  9,  54,  6,  72,  48, 36,  15, 54,  0, 30,  27,
      12,  18, 60,  12, 66,  15, 48,  10, 84,  12, 39,  42, 12,  0, 66,  6,
      24,  18, 21,  36, 54,  24, 24,  12, 51,  18, 66,  12, 90,  0, 18,  6,
      87,  15, 75,  24, 30,  15, 60,  0,  24,  42, 24,  24, 48,  0, 84,  6,
      51,  39, 60,  12, 18,  30, 36,  12, 60,  12, 60,  48, 36,  0, 54,  6,
      42,  12, 6,   18, 78,  6,  48,  12, 12,  36, 84,  0,  48,  0, 54,  3,
      48,  18, 45,  51, 54,  6,  72,  6,  51,  30, 45,  30, 48,  0, 36,  6,
      36,  15, 78,  24, 42,  24, 24,  0,  90,  18, 36,  24, 24,  0, 36,  0,
      36,  30, 30,  30, 66,  6,  78,  21, 30,  12, 21,  15, 60,  0, 36,  12,
      66,  21, 36,  24, 30,  18, 60,  9,  54,  48, 24,  18, 48,  0, 30,  6,
      42,  18, 81,  18, 54,  27, 24,  12, 30,  18, 84,  30, 24,  0, 102, 9,
      42,  42, 36,  24, 90,  3,  30,  0,  60,  30, 42,  18, 24,  0, 18,  0,
      78,  12, 42,  27, 42,  18, 66,  18, 45,  18, 42,  9,  84,  0, 54,  6,
      15,  54, 63,  18, 54,  24, 24,  9,  57,  24, 45,  54, 36,  0, 60,  0,
      66,  27, 33,  18, 30,  9,  60,  24, 30,  12, 54,  21, 24,  0, 12,  18,
      108, 15, 66,  12, 30,  27, 66,  0,  36,  30, 36,  24, 66,  0, 60,  0,
      9,   24, 54,  12, 90,  15, 42,  0,  51,  30, 18,  30, 48,  0, 84,  9,
      48,  21, 54,  30, 24,  18, 36,  12, 45,  18, 96,  6,  30,  0, 30,  9,
      30,  24, 42,  24, 24,  15, 66,  6,  69,  36, 15,  15, 84,  0, 36,  15,
      48,  27, 45,  18, 42,  30, 36,  0,  66,  6,  72,  30, 48,  0, 42,  3,
      51,  39, 30,  33, 78,  12, 24,  18, 30,  18, 105, 21, 72,  0, 42,  12,
      39,  18, 27,  42, 24,  6,  66,  3,  60,  42, 30,  30, 60,  0, 54,  6,
      54,  24, 57,  6,  54,  6,  24,  24, 54,  12, 57,  27, 42,  0, 48,  6,
      36,  27, 57,  12, 84,  12, 60,  0,  12,  30, 54,  24, 48,  0, 18,  3,
      105, 36, 48,  42, 24,  18, 48,  6,  30,  36, 45,  42, 42,  0, 54,  9,
      36,  12, 48,  12, 54,  30, 30,  6,  48,  6,  51,  18, 36,  0, 102, 6,
      18,  30, 33,  24, 48,  18, 60,  12, 60,  30, 45,  12, 36,  0, 54,  12,
      60,  6,  48,  54, 12,  13, 60,  0,  72,  18, 24,  6,  90,  0, 48,  12,
      15,  42, 96,  18, 36,  18, 36,  6,  78,  24, 48,  18, 30,  0, 48,  18,
      78,  42, 24,  30, 60,  6,  60,  12, 18,  12, 42,  30, 42,  0, 24,  0,
      81,  9,  54,  18, 60,  33, 48,  0,  27,  54, 51,  27, 90,  0, 60,  18,
      24,  18, 54,  24, 36,  12, 42,  0,  87,  24, 33,  18, 24,  0, 96,  0,
      87,  36, 30,  15, 42,  12, 36,  24, 24,  36, 42,  21, 48,  0, 30,  6,
      42,  18, 48,  24, 24,  18, 84,  3,  36,  42, 42,  36, 72,  0, 54,  6,
      30,  15, 60,  6,  78,  30, 24,  6,  72,  6,  66,  45, 24,  0, 42,  21,
      36,  30, 36,  18, 48,  12, 30,  0,  39,  24, 102, 18, 36,  0, 12,  6,
      54,  6,  30,  33, 66,  21, 90,  3,  78,  36, 9,   18, 36,  0, 84,  0,
      30,  30, 93,  24, 30,  24, 30,  15, 63,  12, 48,  30, 54,  0, 48,  0,
      54,  42, 42,  30, 78,  0,  36,  24, 39,  24, 60,  12, 78,  0, 60,  6,
      51,  30, 36,  36, 30,  18, 60,  0,  30,  30, 51,  24, 60,  0, 42,  3,
      24,  9,  54,  21, 24,  33, 30,  24, 66,  24, 69,  18, 30,  0, 102, 15,
      54,  24, 15,  30, 120, 6,  30,  3,  51,  24, 54,  12, 30,  0, 36,  6,
      36,  12, 90,  42, 12,  12, 60,  12, 60,  24, 42,  12, 90,  0, 24,  12,
      42,  30, 30,  6,  78,  21, 42,  0,  54,  24, 27,  54, 24,  0, 66,  6,
      45,  30, 12,  30, 42,  12, 84,  15, 36,  18, 84,  24, 36,  0, 30,  18,
      72,  18, 60,  24, 48,  12, 54,  6,  36,  54, 42,  12, 42,  0, 60,  0,
      51,  48, 54,  9,  36,  27, 24,  6,  84,  18, 48,  30, 42,  0, 78,  0,
      48,  27, 27,  48, 42,  18, 36,  0,  39,  18, 99,  24, 102, 0, 18,  0,
      48,  18, 72,  15, 36,  12, 84,  12, 24,  12, 30,  39, 84,  0, 36,  12,
      39,  39, 63,  24, 42,  24, 66,  6,  72,  18, 18,  24, 30,  0, 60,  6,
      48,  42, 36,  15, 78,  6,  48,  30, 12,  36, 54,  12, 36,  0, 42,  6,
      45,  6,  69,  24, 72,  21, 48,  0,  57,  48, 12,  24, 48,  0, 48,  3,
      48,  15, 78,  24, 60,  18, 12,  12, 111, 24, 54,  24, 24,  0, 48,  6,
      36,  33, 42,  6,  54,  9,  72,  18, 27,  30, 30,  12, 54,  0, 66,  4,
      78,  21, 24,  54, 18,  24, 54,  6,  60,  24, 54,  21, 78,  0, 36,  18,
      54,  30, 66,  18, 48,  30, 24,  0,  42,  12, 99,  36, 30,  0, 90,  6,
      18,  30, 30,  24, 78,  6,  66,  9,  24,  42, 78,  30, 42,  0, 18,  12,
      102, 6,  33,  24, 18,  12, 66,  9,  54,  24, 24,  36, 84,  0, 60,  6,
      39,  15, 78,  12, 42,  21, 42,  18, 42,  18, 18,  42, 24,  0, 48,  3,
      105, 51, 42,  30, 42,  18, 72,  0,  24,  24, 102, 6,  36,  0, 36,  9,
      99,  12, 48,  21, 48,  18, 42,  6,  36,  42, 18,  12, 78,  0, 48,  30,
      30,  18, 36,  30, 42,  9,  42,  6,  60,  12, 39,  30, 24,  0, 78,  0,
      48,  30, 39,  27, 102, 24, 30,  12, 51,  12, 66,  9,  48,  0, 30,  18,
      45,  39, 87,  30, 36,  9,  72,  0,  60,  24, 30,  36, 54,  0, 48,  0,
      45,  36, 45,  18, 42,  27, 60,  9,  66,  12, 78,  42, 18,  0, 60,  6,
      60,  33, 36,  24, 96,  12, 18,  12, 12,  36, 72,  0,  78,  0, 36,  6,
      60,  24, 27,  51, 42,  24, 84,  12, 57,  48, 30,  24, 42,  0, 60,  12,
      24,  18, 96,  12, 30,  30, 30,  0,  93,  18, 48,  18, 60,  0, 48,  6,
      54,  36, 30,  12, 42,  9,  60,  18, 12,  24, 69,  6,  60,  0, 54,  6,
      33,  15, 60,  36, 30,  18, 90,  3,  72,  24, 54,  54, 42,  0, 18,  9,
      60,  30, 84,  18, 48,  24, 12,  6,  66,  36, 24,  27, 24,  0, 42,  12,
      39,  42, 27,  18, 108, 9,  78,  0,  48,  12, 54,  30, 30,  0, 36,  0,
      48,  12, 75,  39, 30,  6,  42,  9,  66,  30, 33,  18, 96,  0, 48,  18,
      39,  36, 102, 12, 54,  18, 24,  9,  45,  24, 72,  30, 36,  0, 78,  6,
      63,  36, 36,  21, 60,  9,  36,  12, 54,  24, 78,  27, 42,  0, 42,  18,
      60,  9,  24,  24, 54,  39, 84,  0,  27,  36, 39,  12, 84,  0, 66,  0,
      21,  30, 30,  42, 66,  18, 18,  18, 78,  12, 48,  42, 36,  0, 90,  6,
      48,  33, 39,  24, 48,  15, 54,  15, 54,  24, 48,  18, 60,  0, 24,  0,
      48,  24, 78,  24, 36,  9,  90,  12, 42,  24, 30,  45, 54,  0, 66,  12,
      24,  12, 60,  6,  48,  33, 48,  0,  60,  6,  51,  54, 12,  0, 30,  0,
      69,  21, 42,  15, 72,  15, 48,  21, 33,  36, 96,  6,  30,  0, 54,  6,
      87,  30, 42,  30, 36,  13, 42,  6,  84,  48, 18,  18, 72,  0, 54,  12,
      30,  30, 75,  24, 36,  24, 42,  18, 78,  12, 36,  30, 72,  0, 48,  6,
      33,  36, 57,  36, 66,  6,  54,  0,  27,  36, 66,  12, 90,  0, 24,  3,
      96,  24, 27,  24, 18,  24, 108, 12, 42,  48, 24,  18, 30,  0, 54,  18,
      48,  12, 75,  18, 90,  21, 36,  12, 72,  12, 45,  24, 24,  0, 114, 0,
      27,  30, 39,  33, 48,  12, 54,  12, 18,  42, 45,  27, 48,  0, 48,  6,
      90,  9,  60,  42, 36,  12, 48,  0,  36,  42, 42,  18, 78,  0, 30,  6,
      24,  33, 78,  9,  84,  30, 18,  15, 63,  18, 51,  30, 48,  0, 72,  6,
      36,  51, 24,  30, 48,  21, 96,  6,  24,  6,  93,  12, 48,  0, 18,  6,
      69,  18, 36,  18, 24,  18, 24,  6,  54,  36, 51,  33, 96,  0, 36,  15,
      27,  30, 54,  30, 42,  12, 36,  0,  117, 36, 54,  36, 24,  0, 96,  3,
      72,  36, 57,  27, 54,  6,  54,  21, 36,  12, 66,  33, 60,  0, 30,  24,
      24,  15, 63,  30, 42,  24, 78,  9,  39,  30, 24,  24, 138, 0, 42,  0,
      54,  24, 57,  12, 30,  24, 42,  18, 54,  6,  60,  33, 24,  0, 72,  6,
      84,  24, 42,  6,  66,  15, 36,  0,  42,  48, 51,  18, 66,  0, 60,  3,
      60,  12, 60,  57, 42,  9,  72,  12, 60,  42, 27,  24, 60,  0, 42,  18,
      24,  30, 48,  30, 36,  18, 30,  9,  78,  12, 51,  18, 30,  0, 60,  0,
      12,  57, 51,  18, 78,  6,  102, 12, 30,  24, 48,  27, 36,  0, 30,  12,
      126, 6,  27,  36, 30,  18, 66,  0,  60,  30, 48,  36, 48,  0, 24,  6,
      39,  24, 96,  12, 90,  33, 36,  6,  39,  6,  90,  27, 36,  0, 60,  12,
      45,  42, 30,  30, 72,  12, 36,  9,  39,  36, 69,  24, 48,  0, 36,  6,
      66,  15, 72,  39, 36,  27, 54,  18, 57,  30, 42,  12, 60,  0, 84,  24,
      36,  27, 72,  12, 48,  21, 60,  0,  51,  30, 27,  30, 90,  0, 78,  0,
      42,  57, 12,  30, 48,  18, 42,  6,  48,  24, 90,  15, 42,  0, 12,  15,
      84,  24, 72,  18, 48,  21, 66,  3,  54,  42, 30,  24, 48,  0, 36,  18,
      27,  12, 42,  9,  108, 18, 36,  12, 96,  24, 21,  30, 24,  0, 96,  9,
      54,  18, 75,  30, 54,  18, 36,  0,  39,  18, 84,  18, 42,  0, 24,  6,
      54,  18, 57,  42, 24,  9,  84,  18, 48,  42, 27,  30, 78,  0, 60,  0,
      30,  48, 36,  6,  30,  36, 6,   10, 78,  12, 51,  48, 48,  0, 90,  0,
      75,  9,  42,  24, 48,  15, 72,  12, 33,  42, 108, 12, 54,  0, 54,  18,
      51,  42, 36,  48, 48,  12, 72,  0,  42,  18, 45,  30, 66,  0, 78,  3,
      36,  15, 78,  30, 30,  30, 30,  15, 102, 12, 54,  18, 30,  0, 36,  6,
      81,  48, 12,  24, 108, 6,  78,  18, 24,  36, 33,  18, 30,  0, 30,  0,
      108, 21, 54,  42, 18,  18, 90,  6,  30,  48, 69,  36, 48,  0, 24,  15,
      24,  15, 84,  24, 114, 6,  30,  0,  48,  6,  60,  42, 24,  0, 102, 12,
      42,  42, 27,  21, 78,  9,  42,  24, 51,  24, 42,  12, 48,  0, 60,  12,
      66,  6,  42,  24, 30,  24, 42,  0,  78,  24, 54,  12, 66,  0, 30,  6,
      24,  51, 99,  18, 60,  24, 42,  18, 54,  6,  45,  60, 36,  0, 54,  6,
      39,  39, 39,  30, 66,  18, 72,  0,  51,  24, 102, 12, 54,  0, 24,  0,
      102, 12, 48,  24, 42,  36, 60,  0,  12,  48, 18,  12, 54,  0, 84,  18,
      39,  9,  84,  30, 66,  18, 48,  15, 72,  48, 39,  42, 48,  0, 60,  0,
      84,  30, 45,  33, 54,  6,  54,  30, 33,  30, 90,  6,  54,  0, 24,  6,
      72,  27, 78,  12, 24,  15, 66,  0,  54,  36, 21,  42, 114, 0, 60,  3,
      30,  33, 54,  27, 30,  33, 60,  6,  54,  12, 48,  33, 36,  0, 42,  12,
      45,  39, 24,  36, 96,  18, 24,  12, 33,  18, 99,  18, 66,  0, 36,  0,
      51,  24, 30,  30, 36,  15, 84,  6,  102, 48, 48,  18, 60,  0, 72,  12,
      36,  42, 60,  12, 24,  21, 30,  0,  54,  18, 60,  18, 42,  0, 66,  6,
      24,  24, 54,  15, 78,  12, 42,  27, 27,  30, 51,  27, 78,  0, 48,  6,
      120, 27, 48,  42, 24,  12, 54,  6,  54,  24, 48,  36, 66,  0, 78,  9,
      57,  21, 48,  18, 54,  33, 24,  30, 84,  18, 45,  33, 30,  0, 126, 9,
      36,  30, 27,  30, 66,  18, 54,  0,  36,  42, 48,  6,  42,  0, 54,  6,
      57,  12, 84,  54, 48,  6,  60,  6,  63,  18, 42,  36, 78,  0, 24,  24,
      33,  24, 105, 24, 66,  27, 48,  0,  48,  30, 60,  30, 54,  0, 42,  3,
      75,  48, 24,  12, 66,  12, 96,  6,  30,  12, 87,  21, 36,  0, 30,  24,
      69,  12, 57,  30, 48,  24, 54,  0,  42,  54, 24,  24, 72,  0, 60,  0,
      48,  24, 69,  24, 42,  18, 36,  12, 66,  24, 36,  42, 18,  0, 78,  9,
      48,  36, 42,  42, 36,  12, 36,  21, 78,  18, 48,  12, 102, 0, 18,  12,
      54,  24, 45,  27, 42,  13, 108, 12, 39,  24, 42,  27, 102, 0, 60,  6,
      39,  24, 54,  12, 54,  24, 24,  0,  114, 24, 63,  48, 30,  0, 48,  6,
      69,  36, 18,  12, 72,  6,  48,  18, 33,  54, 117, 12, 42,  0, 66,  12,
      48,  6,  54,  36, 42,  21, 102, 6,  48,  54, 33,  30, 48,  0, 72,  0,
      30,  24, 75,  24, 84,  30, 30,  0,  72,  18, 30,  42, 54,  0, 60,  12,
      36,  45, 42,  12, 96,  6,  66,  0,  12,  36, 78,  36, 42,  0, 36,  0,
      78,  24, 48,  24, 18,  30, 90,  15, 96,  18, 27,  21, 54,  0, 24,  21,
      48,  27, 84,  18, 48,  42, 36,  6,  66,  12, 108, 12, 42,  0, 48,  9,
      27,  60, 21,  36, 84,  6,  36,  18, 42,  18, 54,  18, 60,  0, 60,  15,
      72,  9,  99,  42, 12,  12, 60,  0,  57,  42, 18,  18, 78,  0, 42,  6,
      36,  36, 63,  9,  42,  15, 30,  18, 78,  6,  24,  48, 42,  0, 102, 12,
      75,  45, 42,  30, 84,  24, 66,  9,  24,  30, 90,  24, 42,  0, 24,  3,
      84,  21, 84,  33, 66,  24, 36,  6,  36,  48, 51,  18, 72,  0, 66,  18,
      54,  30, 24,  18, 48,  18, 30,  0,  102, 12, 45,  36, 24,  0, 102, 3,
      42,  15, 42,  54, 54,  21, 66,  24, 66,  30, 102, 3,  66,  0, 48,  12,
      24,  30, 45,  36, 54,  6,  78,  9,  48,  24, 39,  36, 96,  0, 66,  6,
      27,  27, 60,  30, 18,  30, 48,  12, 90,  24, 60,  36, 6,   0, 42,  12,
      78,  36, 36,  24, 114, 6,  60,  0,  18,  6,  69,  18, 84,  0, 36,  6,
      48,  6,  39,  24, 42,  24, 54,  6,  72,  48, 36,  42, 60,  0, 48,  0,
      36,  18, 138, 24, 30,  30, 42,  18, 75,  18, 48,  18, 24,  0, 78,  0,
      78,  57, 60,  9,  48,  9,  36,  30, 30,  42, 42,  39, 84,  0, 24,  12,
      87,  27, 30,  42, 24,  24, 90,  0,  36,  24, 60,  36, 84,  0, 42,  0,
      30,  21, 87,  12, 72,  24, 42,  12, 60,  30, 72,  21, 60,  0, 96,  12,
      30,  42, 39,  18, 66,  12, 84,  12, 63,  42, 42,  24, 42,  0, 18,  6,
      78,  15, 75,  45, 54,  12, 54,  6,  84,  30, 30,  18, 54,  0, 42,  24,
      39,  27, 96,  18, 42,  21, 48,  0,  54,  18, 33,  36, 66,  0, 84,  0,
      75,  48, 30,  42, 54,  12, 54,  15, 42,  30, 96,  18, 42,  0, 18,  6,
      123, 15, 48,  24, 48,  39, 42,  6,  21,  54, 45,  12, 60,  0, 90,  12,
      30,  36, 45,  18, 72,  21, 78,  12, 30,  12, 60,  30, 18,  0, 78,  6,
      60,  36, 33,  18, 60,  12, 30,  0,  60,  18, 90,  30, 54,  0, 36,  1,
      78,  27, 84,  30, 18,  15, 102, 9,  27,  30, 24,  57, 90,  0, 42,  9,
      48,  42, 42,  12, 72,  27, 48,  9,  108, 18, 48,  48, 18,  0, 84,  6,
      66,  24, 48,  21, 114, 6,  78,  24, 30,  30, 42,  18, 60,  0, 18,  12,
      63,  9,  51,  66, 48,  15, 54,  0,  66,  60, 36,  18, 48,  0, 66,  6,
      36,  30, 96,  9,  36,  30, 30,  24, 93,  24, 72,  24, 66,  0, 60,  24,
      48,  30, 24,  30, 72,  6,  60,  12, 30,  12, 93,  18, 72,  0, 30,  0,
      81,  30, 36,  48, 36,  30, 90,  6,  54,  24, 57,  24, 36,  0, 54,  18,
      36,  24, 78,  18, 72,  33, 12,  0,  51,  30, 48,  24, 42,  0, 90,  3,
      78,  30, 30,  27, 138, 6,  30,  18, 36,  24, 75,  24, 12,  0, 54,  12,
      42,  18, 84,  36, 30,  18, 66,  6,  45,  36, 36,  48, 114, 0, 24,  6,
      30,  21, 108, 15, 48,  18, 36,  18, 57,  24, 63,  42, 54,  0, 78,  6,
      81,  36, 18,  24, 42,  18, 120, 0,  24,  24, 66,  12, 54,  0, 48,  12,
      66,  18, 42,  36, 48,  18, 72,  6,  48,  48, 33,  6,  102, 0, 54,  24,
      39,  54, 60,  12, 90,  18, 36,  3,  111, 24, 51,  48, 42,  0, 90,  0,
      45,  36, 54,  48, 54,  24, 18,  18, 51,  18, 72,  0,  54,  0, 18,  12,
      54,  36, 57,  18, 42,  18, 120, 0,  63,  42, 27,  36, 48,  0, 54,  6,
      39,  30, 81,  18, 72,  33, 54,  9,  72,  12, 54,  54, 24,  0, 54,  15,
      75,  24, 60,  12, 78,  6,  30,  12, 39,  54, 72,  6,  54,  0, 72,  6,
      78,  12, 54,  39, 30,  15, 48,  6,  57,  48, 18,  24, 90,  0, 90,  18,
      42,  24, 39,  42, 24,  30, 42,  0,  84,  6,  66,  30, 30,  0, 30,  0,
      27,  42, 39,  33, 90,  24, 84,  18, 51,  36, 69,  24, 54,  0, 42,  18,
      87,  33, 51,  18, 42,  9,  126, 9,  84,  36, 66,  18, 54,  0, 36,  0,
      66,  12, 48,  15, 54,  30, 18,  18, 60,  18, 96,  54, 42,  0, 102, 0,
      27,  36, 30,  36, 108, 15, 54,  0,  24,  36, 60,  24, 66,  0, 30,  0,
      54,  15, 75,  48, 36,  18, 48,  24, 36,  36, 54,  15, 108, 0, 84,  18,
  };
  ll n;
  cin >> n;
  rep(i, n) { cout << a[i] << endl; }
}

Error: TLE

Fixed submission:

#pragma GCC target("avx2")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
using pll = pair<ll, ll>;
using Graph = vector<vector<ll>>;
#define all(v) v.begin(), v.end()
#define rep(i, n) for (ll i = 0; i < (ll)(n); i++)
#define rep2(i, l, r) for (ll i = (l); i <= (ll)(r); i++)
#define rep3(i, l, r) for (ll i = (l); i >= (ll)(r); i--)
#define dup(x, y) (((x) + (y)-1) / (y)) // x/yの除算の切り上げ
template <class T> inline bool chmax(T &a, T b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T> inline bool chmin(T &a, T b) {
  if (a > b) {
    a = b;
    return 1;
  }
  return 0;
}
const int inf = 1001001001;
const ll INF = 1LL << 60;
const ll mod = 1000000007;
const ld pi = acos(-1);

// xor演算
// a^b=b^a
// a^(b^c)=(a^b)^c
// a^a=0
// a+b=a^b + 2(a&b)
//(4a)^(4a+1)^(4a+2)^(4a+3)=0

// union by size + path having
// 最初にUnionFind a(n);で宣言
class UnionFind {
public:
  vector<ll> par; // 各元の親を表す配列
  vector<ll> siz; // 素集合のサイズを表す配列(1 で初期化)

  // Constructor
  UnionFind(ll sz_) : par(sz_), siz(sz_, 1LL) {
    for (ll i = 0; i < sz_; i++)
      par[i] = i; // 初期では親は自分自身
  }
  void init(ll sz_) {
    par.resize(sz_);
    siz.assign(sz_, 1LL);
    for (ll i = 0; i < sz_; i++)
      par[i] = i; // 初期では親は自分自身
  }

  // Member Function
  // Find
  ll root(ll x) { // 根の検索
    while (par[x] != x) {
      x = par[x] = par[par[x]]; // x の親の親を x の親とする
    }
    return x;
  }

  // Union(Unite, Merge)
  bool unite(ll x, ll y) {
    x = root(x);
    y = root(y);
    if (x == y)
      return false;
    // merge technique（データ構造をマージするテク．小を大にくっつける)
    if (siz[x] < siz[y])
      swap(x, y);
    siz[x] += siz[y];
    par[y] = x;
    return true;
  }

  bool same(ll x, ll y) { // 連結判定
    return root(x) == root(y);
  }

  ll size(ll x) { // 素集合のサイズ
    return siz[root(x)];
  }
};

// セグメント木
// 全て添字で扱うこと
//  segment_tree seg;
//  seg.build(配列名, 単位元)で宣言
//  seg.build(a,0)
struct segment_tree {
  ll n;         // vの要素数
  ll m;         // 葉の数
  vector<ll> v; // セグ木本体．ただの配列を使う
  ll id_e;      // 単位元
           // 区間の和なら0、区間の積なら1、最大値なら-1とか、最小値ならINF、最大公約数なら0

  // 二項演算
  ll binary_op(ll a, ll b) {
    return a +
           b; // 処理
              // 区間の和ならa+b、区間の積ならa*b、最大値ならmax(a,b)、最初値ならmin(a,b)、最大公約数ならgcd(a,b)
  }

  // 初期化関数．数列と単位元を受け取って初期化
  void build(vector<ll> a, ll b) {
    id_e = b;
    m = 1;
    while (m < (ll)a.size())
      m *= 2; // aの項数以上の2べきのうち最小のものを求める
    n = 2 * m - 1;
    v.resize(n);
    for (ll i = 0; i < (ll)a.size(); i++)
      v[m - 1 + i] = a[i]; // 葉(1段目)の値
    for (ll i = a.size(); i < m; i++)
      v[m - 1 + i] = id_e;            // 葉(1段目)の右端の0埋め
    for (ll i = m - 2; i >= 0; i--) { // 2段目以降を順番に埋めていく
      v[i] = binary_op(v[2 * i + 1], v[2 * i + 2]);
    }
  }

  // ある項の値をbに書き換え
  void update(ll a, ll b) {
    a += (m - 1);
    v[a] = b;                  // 葉(1段目)を書き換え
    while ((a - 1) / 2 != a) { // 2段目以降を順番に書き換え
      a = (a - 1) / 2;
      v[a] = binary_op(v[2 * a + 1], v[2 * a + 2]);
    }
  }

  // 区間和の補助関数
  // cur:今見ている頂点の，配列vでの添字
  //[l, r]:v[cur]がカバーする区間
  ll seg_sub(ll a, ll b, ll cur, ll l, ll r) {
    if (a <= l && r <= b)
      return v
          [cur]; // 今見ている頂点のカバーする区間が，[a,b]に完全に収まっている場合
    if (r < a || b < l)
      return id_e; // 今見ている頂点のカバーする区間が，[a,b]と全く被っていない場合
    return binary_op( // 今見ている頂点のカバーする区間が，[a,b]と一部被っている場合
        seg_sub(a, b, 2 * cur + 1, l, (l + r) / 2),
        seg_sub(a, b, 2 * cur + 2, (l + r) / 2 + 1, r));
  }

  // 区間[a, b]の和
  // 最上段の頂点から子へ再帰していく
  ll partial_sum(ll a, ll b) { return seg_sub(a, b, 0, 0, m - 1); }
};

// graph_d g(n);でn頂点のグラフを作成
// g.add_edge(a,b,cost);で頂点aから頂点bへのコストcostの辺が張られる
// g.dijkstra(s);で頂点sから各頂点への最短経路をダイクストラ法で探索できる
// ll dist=g.d[i];で探索結果を呼び出すことができる
struct edge {
  ll to, cost;
};
struct graph_d {
  ll V;
  vector<vector<edge>> G;
  vector<ll> d;

  graph_d(ll n) { init(n); }

  void init(ll n) {
    V = n;
    G.resize(V);
    d.resize(V);
    rep(i, V) { d[i] = INF; }
  }

  void add_edge(ll s, ll t, ll cost) {
    edge e;
    e.to = t, e.cost = cost;
    G[s].push_back(e);
  }

  void dijkstra(ll s) {
    rep(i, V) { d[i] = INF; }
    d[s] = 0;
    priority_queue<pll, vector<pll>, greater<pll>> que;
    que.push(pll(0, s));
    while (!que.empty()) {
      pll p = que.top();
      que.pop();
      ll v = p.second;
      if (d[v] < p.first)
        continue;
      for (auto e : G[v]) {
        if (d[e.to] > d[v] + e.cost) {
          d[e.to] = d[v] + e.cost;
          que.push(pll(d[e.to], e.to));
        }
      }
    }
  }
};

ll modpow(ll x, ll n) {
  x = x % mod;
  if (n == 0)
    return 1;
  else if (n % 2 == 1) {
    return (x * modpow(x, n - 1)) % mod;
  } else
    return modpow((x * x) % mod, n / 2) % mod;
}

ll modcom(ll n, ll k) {
  ll x = 1;
  for (ll i = n - k + 1; i <= n; i++) {
    x = x * i % mod;
  }
  ll y = 1;
  for (ll i = 1; i <= k; i++) {
    y = y * i % mod;
  }
  y = modpow(y, mod - 2);
  return x * y % mod;
}

bool is_prime(ll n) {
  switch (n) {
  case 0:
  case 1:
    return false;
  case 2:
  case 3:
    return true;
  }
  if (n % 2 == 0 || n % 3 == 0)
    return false;
  for (ll i = 5; i * i <= n; i += 6) {
    if (n % i == 0)
      return false;
    if (n % (i + 2) == 0)
      return false;
  }
  return true;
}

ll digsum(ll n) {
  int res = 0;
  while (n > 0) {
    res +=
        n % 10; // res++;だと桁数を求める関数,res+=n%10;なら格桁の和を求める関数
    n /= 10;
  }
  return res;
}

vector<ll> divisor(ll n) {
  vector<ll> ret;
  for (ll i = 1; i * i <= n; i++) {
    if (n % i == 0) {
      ret.push_back(i);
      if (i * i != n)
        ret.push_back(n / i);
    }
  }
  sort(ret.begin(), ret.end());
  return ret;
}

vector<ll> divisor_cnt(ll n) {
  vector<ll> cnt(n);
  for (ll i = 1; i <= n; i++) {
    for (ll j = i; j <= n; j += i) {
      cnt[j]++;
    }
  }
  return cnt;
}

map<ll, ll> prime_factor(ll n) {
  map<ll, ll> res;
  res[1] = 1;
  for (ll i = 2; i * i <= n; i++) {
    while (n % i == 0) {
      res[i]++;
      n /= i;
    }
  }
  if (n != 1)
    res[n] = 1;
  return res;
}

template <std::int_fast64_t Modulus> class ModInt {
  using i64 = std::int_fast64_t;

private:
  i64 m_value;

public:
  constexpr ModInt(const i64 x = 0) noexcept : m_value(x % Modulus) {
    if (m_value < 0)
      m_value += Modulus;
  }

  constexpr const i64 &value() const noexcept { return m_value; }

  constexpr ModInt &operator+=(const ModInt rhs) noexcept {
    m_value += rhs.m_value;
    if (m_value >= Modulus) {
      m_value -= Modulus;
    }
    return *this;
  }
  constexpr ModInt &operator-=(const ModInt rhs) noexcept {
    if (m_value < rhs.m_value) {
      m_value += Modulus;
    }
    m_value -= rhs.m_value;
    return *this;
  }
  constexpr ModInt &operator*=(const ModInt rhs) noexcept {
    m_value = m_value * rhs.m_value % Modulus;
    return *this;
  }
  constexpr ModInt &operator/=(ModInt rhs) noexcept {
    *this *= rhs.inv();
    return *this;
  }

  constexpr ModInt &operator++() noexcept {
    *this += 1;
    return *this;
  }
  constexpr ModInt operator++(int) noexcept {
    ModInt res = *this;
    *this += 1;
    return res;
  }
  constexpr ModInt &operator--() noexcept {
    *this -= 1;
    return *this;
  }
  constexpr ModInt operator--(int) noexcept {
    ModInt res = *this;
    *this -= 1;
    return res;
  }

  constexpr ModInt inv() const noexcept {
    i64 q = m_value;
    i64 b = Modulus, u = 1, v = 0;
    while (b) {
      i64 t = q / b;
      q -= t * b;
      std::swap(q, b);
      u -= t * v;
      std::swap(u, v);
    }
    u %= Modulus;
    if (u < 0)
      u += Modulus;
    return u;
  }

  constexpr ModInt pow(i64 k) const noexcept {
    ModInt res = 1;
    ModInt tmp;
    if (k < 0) {
      tmp = (*this).inv();
      k = -k;
    } else {
      tmp = *this;
    }
    for (; k > 0; k >>= 1) {
      if (k & 1)
        res *= tmp;
      tmp *= tmp;
    }
    return res;
  }

  friend constexpr ModInt operator+(const ModInt &lhs,
                                    const ModInt &rhs) noexcept {
    return ModInt<Modulus>(lhs) += rhs;
  }
  friend constexpr ModInt operator-(const ModInt &lhs,
                                    const ModInt &rhs) noexcept {
    return ModInt<Modulus>(lhs) -= rhs;
  }
  friend constexpr ModInt operator*(const ModInt &lhs,
                                    const ModInt &rhs) noexcept {
    return ModInt<Modulus>(lhs) *= rhs;
  }
  friend constexpr ModInt operator/(const ModInt &lhs,
                                    const ModInt &rhs) noexcept {
    return ModInt<Modulus>(lhs) /= rhs;
  }

  friend constexpr bool operator<(const ModInt &lhs,
                                  const ModInt &rhs) noexcept {
    return lhs.m_value < rhs.m_value;
  }
  friend constexpr bool operator>(const ModInt &lhs,
                                  const ModInt &rhs) noexcept {
    return lhs.m_value > rhs.m_value;
  }
  friend constexpr bool operator<=(const ModInt &lhs,
                                   const ModInt &rhs) noexcept {
    return lhs.m_value <= rhs.m_value;
  }
  friend constexpr bool operator>=(const ModInt &lhs,
                                   const ModInt &rhs) noexcept {
    return lhs.m_value >= rhs.m_value;
  }
  friend constexpr bool operator==(const ModInt &lhs,
                                   const ModInt &rhs) noexcept {
    return lhs.m_value == rhs.m_value;
  }
  friend constexpr bool operator!=(const ModInt &lhs,
                                   const ModInt &rhs) noexcept {
    return lhs.m_value != rhs.m_value;
  }

  friend std::istream &operator>>(std::istream &is, ModInt &rhs) {
    i64 a;
    is >> a;
    rhs = a;
    return is;
  }
  friend std::ostream &operator<<(std::ostream &os, const ModInt &rhs) {
    os << rhs.m_value;
    return os;
  }
};

int main() {

  ios::sync_with_stdio(false);
  cin.tie(0);

  ll n;
  cin >> n;
  rep2(a, 1, n) {
    ll cnt = 0;
    rep2(i, 1, 100) {
      if (i * i + 2 * i > a)
        break;
      rep2(j, 1, 100) {
        if (i * i + j * j + i * j + i + j > a)
          break;
        rep2(k, 1, 100) {
          if (i * i + j * j + k * k + i * j + j * k + k * i == a)
            cnt++;
        }
      }
    }

    cout << cnt << endl;
  }
}