QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#774838#9791. Intrusive Donkeyucup-team987#AC ✓458ms35224kbC++2336.3kb2024-11-23 13:59:162024-11-23 13:59:19

Judging History

你现在查看的是最新测评结果

  • [2024-11-23 13:59:19]
  • 评测
  • 测评结果:AC
  • 用时:458ms
  • 内存:35224kb
  • [2024-11-23 13:59:16]
  • 提交

answer

/**
 * date   : 2024-11-23 14:58:59
 * author : Nyaan
 */

#define NDEBUG

using namespace std;

// intrinstic
#include <immintrin.h>

#include <algorithm>
#include <array>
#include <bitset>
#include <cassert>
#include <cctype>
#include <cfenv>
#include <cfloat>
#include <chrono>
#include <cinttypes>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdarg>
#include <cstddef>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <deque>
#include <fstream>
#include <functional>
#include <initializer_list>
#include <iomanip>
#include <ios>
#include <iostream>
#include <istream>
#include <iterator>
#include <limits>
#include <list>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <ostream>
#include <queue>
#include <random>
#include <set>
#include <sstream>
#include <stack>
#include <streambuf>
#include <string>
#include <tr2/dynamic_bitset>
#include <tuple>
#include <type_traits>
#include <typeinfo>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>

// utility

namespace Nyaan {
using ll = long long;
using i64 = long long;
using u64 = unsigned long long;
using i128 = __int128_t;
using u128 = __uint128_t;

template <typename T>
using V = vector<T>;
template <typename T>
using VV = vector<vector<T>>;
using vi = vector<int>;
using vl = vector<long long>;
using vd = V<double>;
using vs = V<string>;
using vvi = vector<vector<int>>;
using vvl = vector<vector<long long>>;
template <typename T>
using minpq = priority_queue<T, vector<T>, greater<T>>;

template <typename T, typename U>
struct P : pair<T, U> {
  template <typename... Args>
  constexpr P(Args... args) : pair<T, U>(args...) {}

  using pair<T, U>::first;
  using pair<T, U>::second;

  P &operator+=(const P &r) {
    first += r.first;
    second += r.second;
    return *this;
  }
  P &operator-=(const P &r) {
    first -= r.first;
    second -= r.second;
    return *this;
  }
  P &operator*=(const P &r) {
    first *= r.first;
    second *= r.second;
    return *this;
  }
  template <typename S>
  P &operator*=(const S &r) {
    first *= r, second *= r;
    return *this;
  }
  P operator+(const P &r) const { return P(*this) += r; }
  P operator-(const P &r) const { return P(*this) -= r; }
  P operator*(const P &r) const { return P(*this) *= r; }
  template <typename S>
  P operator*(const S &r) const {
    return P(*this) *= r;
  }
  P operator-() const { return P{-first, -second}; }
};

using pl = P<ll, ll>;
using pi = P<int, int>;
using vp = V<pl>;

constexpr int inf = 1001001001;
constexpr long long infLL = 4004004004004004004LL;

template <typename T>
int sz(const T &t) {
  return t.size();
}

template <typename T, typename U>
inline bool amin(T &x, U y) {
  return (y < x) ? (x = y, true) : false;
}
template <typename T, typename U>
inline bool amax(T &x, U y) {
  return (x < y) ? (x = y, true) : false;
}

template <typename T>
inline T Max(const vector<T> &v) {
  return *max_element(begin(v), end(v));
}
template <typename T>
inline T Min(const vector<T> &v) {
  return *min_element(begin(v), end(v));
}
template <typename T>
inline long long Sum(const vector<T> &v) {
  return accumulate(begin(v), end(v), 0LL);
}

template <typename T>
int lb(const vector<T> &v, const T &a) {
  return lower_bound(begin(v), end(v), a) - begin(v);
}
template <typename T>
int ub(const vector<T> &v, const T &a) {
  return upper_bound(begin(v), end(v), a) - begin(v);
}

constexpr long long TEN(int n) {
  long long ret = 1, x = 10;
  for (; n; x *= x, n >>= 1) ret *= (n & 1 ? x : 1);
  return ret;
}

template <typename T, typename U>
pair<T, U> mkp(const T &t, const U &u) {
  return make_pair(t, u);
}

template <typename T>
vector<T> mkrui(const vector<T> &v, bool rev = false) {
  vector<T> ret(v.size() + 1);
  if (rev) {
    for (int i = int(v.size()) - 1; i >= 0; i--) ret[i] = v[i] + ret[i + 1];
  } else {
    for (int i = 0; i < int(v.size()); i++) ret[i + 1] = ret[i] + v[i];
  }
  return ret;
};

template <typename T>
vector<T> mkuni(const vector<T> &v) {
  vector<T> ret(v);
  sort(ret.begin(), ret.end());
  ret.erase(unique(ret.begin(), ret.end()), ret.end());
  return ret;
}

template <typename F>
vector<int> mkord(int N, F f) {
  vector<int> ord(N);
  iota(begin(ord), end(ord), 0);
  sort(begin(ord), end(ord), f);
  return ord;
}

template <typename T>
vector<int> mkinv(vector<T> &v) {
  int max_val = *max_element(begin(v), end(v));
  vector<int> inv(max_val + 1, -1);
  for (int i = 0; i < (int)v.size(); i++) inv[v[i]] = i;
  return inv;
}

vector<int> mkiota(int n) {
  vector<int> ret(n);
  iota(begin(ret), end(ret), 0);
  return ret;
}

template <typename T>
T mkrev(const T &v) {
  T w{v};
  reverse(begin(w), end(w));
  return w;
}

template <typename T>
bool nxp(T &v) {
  return next_permutation(begin(v), end(v));
}

// 返り値の型は入力の T に依存
// i 要素目 : [0, a[i])
template <typename T>
vector<vector<T>> product(const vector<T> &a) {
  vector<vector<T>> ret;
  vector<T> v;
  auto dfs = [&](auto rc, int i) -> void {
    if (i == (int)a.size()) {
      ret.push_back(v);
      return;
    }
    for (int j = 0; j < a[i]; j++) v.push_back(j), rc(rc, i + 1), v.pop_back();
  };
  dfs(dfs, 0);
  return ret;
}

// F : function(void(T&)), mod を取る操作
// T : 整数型のときはオーバーフローに注意する
template <typename T>
T Power(T a, long long n, const T &I, const function<void(T &)> &f) {
  T res = I;
  for (; n; f(a = a * a), n >>= 1) {
    if (n & 1) f(res = res * a);
  }
  return res;
}
// T : 整数型のときはオーバーフローに注意する
template <typename T>
T Power(T a, long long n, const T &I = T{1}) {
  return Power(a, n, I, function<void(T &)>{[](T &) -> void {}});
}

template <typename T>
T Rev(const T &v) {
  T res = v;
  reverse(begin(res), end(res));
  return res;
}

template <typename T>
vector<T> Transpose(const vector<T> &v) {
  using U = typename T::value_type;
  if(v.empty()) return {};
  int H = v.size(), W = v[0].size();
  vector res(W, T(H, U{}));
  for (int i = 0; i < H; i++) {
    for (int j = 0; j < W; j++) {
      res[j][i] = v[i][j];
    }
  }
  return res;
}

template <typename T>
vector<T> Rotate(const vector<T> &v, int clockwise = true) {
  using U = typename T::value_type;
  int H = v.size(), W = v[0].size();
  vector res(W, T(H, U{}));
  for (int i = 0; i < H; i++) {
    for (int j = 0; j < W; j++) {
      if (clockwise) {
        res[W - 1 - j][i] = v[i][j];
      } else {
        res[j][H - 1 - i] = v[i][j];
      }
    }
  }
  return res;
}

}  // namespace Nyaan


// bit operation

namespace Nyaan {
__attribute__((target("popcnt"))) inline int popcnt(const u64 &a) {
  return __builtin_popcountll(a);
}
inline int lsb(const u64 &a) { return a ? __builtin_ctzll(a) : 64; }
inline int ctz(const u64 &a) { return a ? __builtin_ctzll(a) : 64; }
inline int msb(const u64 &a) { return a ? 63 - __builtin_clzll(a) : -1; }
template <typename T>
inline int gbit(const T &a, int i) {
  return (a >> i) & 1;
}
template <typename T>
inline void sbit(T &a, int i, bool b) {
  if (gbit(a, i) != b) a ^= T(1) << i;
}
constexpr long long PW(int n) { return 1LL << n; }
constexpr long long MSK(int n) { return (1LL << n) - 1; }
}  // namespace Nyaan


// inout

namespace Nyaan {

template <typename T, typename U>
ostream &operator<<(ostream &os, const pair<T, U> &p) {
  os << p.first << " " << p.second;
  return os;
}
template <typename T, typename U>
istream &operator>>(istream &is, pair<T, U> &p) {
  is >> p.first >> p.second;
  return is;
}

template <typename T>
ostream &operator<<(ostream &os, const vector<T> &v) {
  int s = (int)v.size();
  for (int i = 0; i < s; i++) os << (i ? " " : "") << v[i];
  return os;
}
template <typename T>
istream &operator>>(istream &is, vector<T> &v) {
  for (auto &x : v) is >> x;
  return is;
}

istream &operator>>(istream &is, __int128_t &x) {
  string S;
  is >> S;
  x = 0;
  int flag = 0;
  for (auto &c : S) {
    if (c == '-') {
      flag = true;
      continue;
    }
    x *= 10;
    x += c - '0';
  }
  if (flag) x = -x;
  return is;
}

istream &operator>>(istream &is, __uint128_t &x) {
  string S;
  is >> S;
  x = 0;
  for (auto &c : S) {
    x *= 10;
    x += c - '0';
  }
  return is;
}

ostream &operator<<(ostream &os, __int128_t x) {
  if (x == 0) return os << 0;
  if (x < 0) os << '-', x = -x;
  string S;
  while (x) S.push_back('0' + x % 10), x /= 10;
  reverse(begin(S), end(S));
  return os << S;
}
ostream &operator<<(ostream &os, __uint128_t x) {
  if (x == 0) return os << 0;
  string S;
  while (x) S.push_back('0' + x % 10), x /= 10;
  reverse(begin(S), end(S));
  return os << S;
}

void in() {}
template <typename T, class... U>
void in(T &t, U &...u) {
  cin >> t;
  in(u...);
}

void out() { cout << "\n"; }
template <typename T, class... U, char sep = ' '>
void out(const T &t, const U &...u) {
  cout << t;
  if (sizeof...(u)) cout << sep;
  out(u...);
}

struct IoSetupNya {
  IoSetupNya() {
    cin.tie(nullptr);
    ios::sync_with_stdio(false);
    cout << fixed << setprecision(15);
    cerr << fixed << setprecision(7);
  }
} iosetupnya;

}  // namespace Nyaan


// debug


#ifdef NyaanDebug
#define trc(...) (void(0))
#endif
#ifndef NyaanDebug
#define trc(...) (void(0))
#endif

#ifndef NyaanLocal
#define trc2(...) (void(0))
#endif


// macro

#define each(x, v) for (auto&& x : v)
#define each2(x, y, v) for (auto&& [x, y] : v)
#define all(v) (v).begin(), (v).end()
#define rep(i, N) for (long long i = 0; i < (long long)(N); i++)
#define repr(i, N) for (long long i = (long long)(N)-1; i >= 0; i--)
#define rep1(i, N) for (long long i = 1; i <= (long long)(N); i++)
#define repr1(i, N) for (long long i = (N); (long long)(i) > 0; i--)
#define reg(i, a, b) for (long long i = (a); i < (b); i++)
#define regr(i, a, b) for (long long i = (b)-1; i >= (a); i--)
#define fi first
#define se second
#define ini(...)   \
  int __VA_ARGS__; \
  in(__VA_ARGS__)
#define inl(...)         \
  long long __VA_ARGS__; \
  in(__VA_ARGS__)
#define ins(...)      \
  string __VA_ARGS__; \
  in(__VA_ARGS__)
#define in2(s, t)                           \
  for (int i = 0; i < (int)s.size(); i++) { \
    in(s[i], t[i]);                         \
  }
#define in3(s, t, u)                        \
  for (int i = 0; i < (int)s.size(); i++) { \
    in(s[i], t[i], u[i]);                   \
  }
#define in4(s, t, u, v)                     \
  for (int i = 0; i < (int)s.size(); i++) { \
    in(s[i], t[i], u[i], v[i]);             \
  }
#define die(...)             \
  do {                       \
    Nyaan::out(__VA_ARGS__); \
    return;                  \
  } while (0)


namespace Nyaan {
void solve();
}
int main() { Nyaan::solve(); }


//



using namespace std;






using namespace std;

namespace internal {
template <typename T>
using is_broadly_integral =
    typename conditional_t<is_integral_v<T> || is_same_v<T, __int128_t> ||
                               is_same_v<T, __uint128_t>,
                           true_type, false_type>::type;

template <typename T>
using is_broadly_signed =
    typename conditional_t<is_signed_v<T> || is_same_v<T, __int128_t>,
                           true_type, false_type>::type;

template <typename T>
using is_broadly_unsigned =
    typename conditional_t<is_unsigned_v<T> || is_same_v<T, __uint128_t>,
                           true_type, false_type>::type;

#define ENABLE_VALUE(x) \
  template <typename T> \
  constexpr bool x##_v = x<T>::value;

ENABLE_VALUE(is_broadly_integral);
ENABLE_VALUE(is_broadly_signed);
ENABLE_VALUE(is_broadly_unsigned);
#undef ENABLE_VALUE

#define ENABLE_HAS_TYPE(var)                                   \
  template <class, class = void>                               \
  struct has_##var : false_type {};                            \
  template <class T>                                           \
  struct has_##var<T, void_t<typename T::var>> : true_type {}; \
  template <class T>                                           \
  constexpr auto has_##var##_v = has_##var<T>::value;

#define ENABLE_HAS_VAR(var)                                     \
  template <class, class = void>                                \
  struct has_##var : false_type {};                             \
  template <class T>                                            \
  struct has_##var<T, void_t<decltype(T::var)>> : true_type {}; \
  template <class T>                                            \
  constexpr auto has_##var##_v = has_##var<T>::value;

}  // namespace internal


ENABLE_HAS_VAR(lazy);
ENABLE_HAS_VAR(shift);

template <typename Node, typename I, typename T, typename E, T (*f)(T, T),
          T (*g)(T, E), E (*h)(E, E), T (*ti)(), E (*ei)()>
struct RBSTSegmentTreeBase {
 protected:
  using Ptr = Node *;
  template <typename... Args>
  static Ptr _my_new(Args... args) {
    return new Node(args...);
  }
  static void _my_del(Ptr t) { delete t; }

  static int _count(const Ptr t) { return t ? t->cnt : 0; }

  static T _sum(const Ptr &t) { return t ? t->sum : ti(); }

  static uint64_t _rng() {
    static uint64_t x_ = 88172645463325252ULL;
    return x_ ^= x_ << 7, x_ ^= x_ >> 9, x_ & 0xFFFFFFFFull;
  }

  static Ptr _merge(Ptr l, Ptr r) {
    if (!l || !r) return l ? l : r;
    if (int((_rng() * (l->cnt + r->cnt)) >> 32) < l->cnt) {
      _push(l);
      l->r = _merge(l->r, r);
      return _update(l);
    } else {
      _push(r);
      r->l = _merge(l, r->l);
      return _update(r);
    }
  }

  static Ptr _build(int l, int r, const vector<pair<I, T>> &dat) {
    if (l == r) return nullptr;
    if (l + 1 == r) return _my_new(dat[l].first, dat[l].second);
    int m = (l + r) / 2;
    return _merge(_build(l, m, dat), _build(m, r, dat));
  };

  static void _push([[maybe_unused]] Ptr t) {
    if constexpr (has_lazy_v<Node>) {
      if (!t) return;
      if (t->lazy != ei()) {
        if (t->l) _propagate(t->l, t->lazy);
        if (t->r) _propagate(t->r, t->lazy);
        t->lazy = ei();
      }
    }
    if constexpr (has_shift_v<Node>) {
      if (!t) return;
      if (t->shift != I{}) {
        if (t->l) _shift(t->l, t->shift);
        if (t->r) _shift(t->r, t->shift);
        t->shift = I{};
      }
    }
  }
  static void _propagate([[maybe_unused]] Ptr t, [[maybe_unused]] const E &x) {
    if constexpr (has_lazy_v<Node>) {
      if (!t) return;
      t->lazy = h(t->lazy, x);
      t->val = g(t->val, x);
      t->sum = g(t->sum, x);
    }
  }
  static void _shift([[maybe_unused]] Ptr t, [[maybe_unused]] const I &sh) {
    if constexpr (has_shift_v<Node>) {
      if (!t) return;
      t->key += sh, t->shift += sh;
    }
  }

  static Ptr _update(Ptr t) {
    if (!t) return t;
    t->cnt = 1;
    t->sum = t->val;
    if (t->l) t->cnt += t->l->cnt, t->sum = f(t->l->sum, t->sum);
    if (t->r) t->cnt += t->r->cnt, t->sum = f(t->sum, t->r->sum);
    return t;
  }

  // key が k であるノードを探す, なければ nullptr
  static Ptr _find(Ptr t, I k) {
    while (t) {
      _push(t);
      if (k == t->key) return t;
      t = k < t->key ? t->l : t->r;
    }
    return nullptr;
  }

  static void _erase(Ptr &t, I k) {
    if (!t) return;
    _push(t);
    if (k == t->key) {
      Ptr tl = t->l, tr = t->r;
      _my_del(t);
      t = _merge(tl, tr);
    } else if (k < t->key) {
      _erase(t->l, k);
      _update(t);
    } else {
      _erase(t->r, k);
      _update(t);
    }
  }

  // [k 未満, k 以上]
  static pair<Ptr, Ptr> _split_by_key(Ptr t, I k) {
    if (!t) return {nullptr, nullptr};
    _push(t);
    if (k == t->key) {
      Ptr tl = t->l;
      t->l = nullptr;
      return {tl, _update(t)};
    } else if (k < t->key) {
      auto s = _split_by_key(t->l, k);
      t->l = s.second;
      return {s.first, _update(t)};
    } else {
      auto s = _split_by_key(t->r, k);
      t->r = s.first;
      return {_update(t), s.second};
    }
  }

  // [k 未満, k, k 超過]
  static array<Ptr, 3> _split_by_key3(Ptr t, I k) {
    if (!t) return {{nullptr, nullptr, nullptr}};
    _push(t);
    if (k == t->key) {
      Ptr tl = t->l, tr = t->r;
      t->l = t->r = nullptr;
      return {{tl, _update(t), tr}};
    } else if (k < t->key) {
      auto s = _split_by_key3(t->l, k);
      t->l = s[2];
      return {{s[0], s[1], _update(t)}};
    } else {
      auto s = _split_by_key3(t->r, k);
      t->r = s[0];
      return {{_update(t), s[1], s[2]}};
    }
  }

  // (-inf, i] の prod について check(prod) の (true / false) で切る
  template <typename C>
  static pair<Ptr, Ptr> _split_max_right(Ptr t, const C &check, T prod = ti()) {
    assert(check(prod));
    if (!t) return {nullptr, nullptr};
    _push(t);
    T p1 = f(prod, _sum(t->l));
    if (check(p1)) {
      prod = p1;
    } else {
      auto s = _split_max_right(t->l, check, prod);
      t->l = s.second;
      return {s.first, _update(t)};
    }
    prod = f(prod, t->val);
    if (!check(prod)) {
      Ptr tl = t->l;
      t->l = nullptr;
      return {tl, _update(t)};
    }
    p1 = f(prod, _sum(t->r));
    if (check(p1)) {
      return {t, nullptr};
    } else {
      auto s = _split_max_right(t->r, check, prod);
      t->r = s.first;
      return {_update(t), s.second};
    }
  }

  // [i, inf) の prod について check(prod) の (false / true) で切る
  template <typename C>
  static pair<Ptr, Ptr> _split_min_left(Ptr t, const C &check, T prod = ti()) {
    assert(check(prod));
    if (!t) return {nullptr, nullptr};
    _push(t);
    T p1 = f(_sum(t->r), prod);
    if (check(p1)) {
      prod = p1;
    } else {
      auto s = _split_min_left(t->r, check, prod);
      t->r = s.first;
      return {_update(t), s.second};
    }
    prod = f(t->val, prod);
    if (!check(prod)) {
      Ptr tr = t->r;
      t->r = nullptr;
      return {_update(t), tr};
    }
    p1 = f(_sum(t->l), prod);
    if (check(p1)) {
      return {nullptr, t};
    } else {
      auto s = _split_min_left(t->l, check, prod);
      t->l = s.second;
      return {s.first, _update(t)};
    }
  }

  // [l, inf) である地点に apply
  static void _apply_left(Ptr t, I l, const E &e) {
    if (!t) return;
    _push(t);
    if (t->key < l) {
      _apply_left(t->r, l, e);
    } else if (t->key == l) {
      t->val = g(t->val, e);
      _propagate(t->r, e);
    } else {
      _apply_left(t->l, l, e);
      t->val = g(t->val, e);
      _propagate(t->r, e);
    }
    _update(t);
  }

  // [-inf, r) である地点に apply
  static void _apply_right(Ptr t, I r, const E &e) {
    if (!t) return;
    _push(t);
    if (t->key < r) {
      _propagate(t->l, e);
      t->val = g(t->val, e);
      _apply_right(t->r, r, e);
    } else if (t->key == r) {
      _propagate(t->l, e);
    } else {
      _apply_right(t->l, r, e);
    }
    _update(t);
  }

  // [l, r) に apply
  static void _apply(Ptr t, I l, I r, const E &e) {
    if (!t) return;
    _push(t);
    if (t->key < l) {
      _apply(t->r, l, r, e);
    } else if (t->key == l) {
      t->val = g(t->val, e);
      _apply_right(t->r, r, e);
    } else if (t->key < r) {
      _apply_left(t->l, l, e);
      t->val = g(t->val, e);
      _apply_right(t->r, r, e);
    } else if (t->key == r) {
      _apply_left(t->l, l, e);
    } else {
      _apply(t->l, l, r, e);
    }
    _update(t);
  }

  // l 以上
  static T _fold_left(Ptr t, I l) {
    if (!t) return ti();
    _push(t);
    if (t->key < l) {
      return _fold_left(t->r, l);
    } else if (t->key == l) {
      return f(t->val, _fold_left(t->r, l));
    } else {
      T tl = _fold_left(t->l, l);
      return f(f(tl, t->val), _sum(t->r));
    }
  }

  // r 未満
  static T _fold_right(Ptr t, I r) {
    if (!t) return ti();
    _push(t);
    if (t->key < r) {
      T tr = _fold_right(t->r, r);
      return f(f(_sum(t->l), t->val), tr);
    } else if (t->key == r) {
      return _sum(t->l);
    } else {
      return _fold_right(t->l, r);
    }
  }

  static T _fold(Ptr t, I l, I r) {
    if (!t) return ti();
    _push(t);
    if (t->key < l) {
      return _fold(t->r, l, r);
    } else if (t->key == l) {
      return f(t->val, _fold_right(t->r, r));
    } else if (t->key < r) {
      T tl = _fold_left(t->l, l);
      T tr = _fold_right(t->r, r);
      return f(f(tl, t->val), tr);
    } else if (t->key == r) {
      return _fold_left(t->l, l);
    } else {
      return _fold(t->l, l, r);
    }
  }

  // t を根とする木の上で最小の key は? (t が空の場合は failed)
  static pair<I, T> _get_min_keyval(Ptr t, const I &failed) {
    if (!t) return {failed, ti()};
    while (t->l) _push(t), t = t->l;
    return {t->key, t->val};
  }

  // t を根とする木の上で最小の key は? (t が空の場合は failed)
  static pair<I, T> _get_max_keyval(Ptr t, const I &failed) {
    if (!t) return {failed, ti()};
    while (t->r) _push(t), t = t->r;
    return {t->key, t->val};
  }

  // t を根とする木のうち、[0, i の区間 fold が true になる最大の i は何か?
  // exclusive かつ (空 または[0,右]が真の場合) の場合は failed(inf)
  // inclusive かつ (空 または[0,0] が偽の場合) の場合は failed
  template <typename C, bool exclusive>
  static I _max_right(Ptr t, C check, const I &failed) {
    if (!t) return failed;
    _push(t);
    Ptr now = t;
    T prod_now = ti();
    [[maybe_unused]] I prev = failed;
    while (true) {
      if (now->l != nullptr) {
        _push(now->l);
        auto pl = f(prod_now, now->l->sum);
        if (check(pl)) {
          prod_now = pl;
        } else {
          now = now->l;
          continue;
        }
      }
      auto pl = f(prod_now, now->val);
      if (!check(pl)) {
        if constexpr (exclusive) {
          return now->key;
        } else {
          return now->l ? _get_max_keyval(now->l, failed).first : prev;
        }
      }
      prod_now = pl;
      if (now->r == nullptr) {
        if constexpr (exclusive) {
          return failed;
        } else {
          return now->key;
        }
      }
      _push(now->r);
      if constexpr (!exclusive) prev = now->key;
      now = now->r;
    }
  }

  // t を根とする木のうち、i, inf) の区間 fold が true になる最小の i は何か?
  // inclusive かつ (空 または 存在しない) 場合は failed
  // exlucisve かつ (空 または [左, inf) が真) の場合は failed
  template <typename C, bool inclusive>
  static I _min_left(Ptr t, C check, const I &failed) {
    if (!t) return failed;
    _push(t);
    Ptr now = t;
    T prod_now = ti();
    [[maybe_unused]] I prev = failed;
    while (true) {
      if (now->r != nullptr) {
        _push(now->r);
        auto pr = f(now->r->sum, prod_now);
        if (check(pr)) {
          prod_now = pr;
        } else {
          now = now->r;
          continue;
        }
      }
      auto pr = f(now->val, prod_now);
      if (!check(pr)) {
        if constexpr (inclusive) {
          return now->r ? _get_min_keyval(now->r, failed).first : prev;
        } else {
          return now->key;
        }
      }
      prod_now = pr;
      if (now->l == nullptr) {
        if constexpr (inclusive) {
          return now->key;
        } else {
          return failed;
        }
      }
      _push(now->l);
      if constexpr (inclusive) prev = now->key;
      now = now->l;
    }
  }

  static void _clear(Ptr t) {
    if (!t) return;
    if (t->l) _clear(t->l);
    if (t->r) _clear(t->r);
    _my_del(t);
  }

  static Ptr _deepcopy(Ptr t) {
    if (!t) return nullptr;
    Ptr u = _my_new(*t);
    if (u->l) u->l = _deepcopy(u->l);
    if (u->r) u->r = _deepcopy(u->r);
    return u;
  }

  static void _dump(Ptr t) {
    if (!t) return;
    _push(t);
    _dump(t->l);
    cerr << "## key = " << t->key << ",";
    cerr << "\tval = " << t->val << ", ";
    cerr << "\tsum = " << t->sum << ", ";
    cerr << "\tchild = ";
    cerr << "( ";
    if (t->l) cerr << t->l->key;
    if (!t->l) cerr << "nil";
    cerr << ", ";
    if (t->r) cerr << t->r->key;
    if (!t->r) cerr << "nil";
    cerr << " )" << endl;
    _dump(t->r);
  }

  static void _make_array(Ptr t, vector<pair<I, T>> &v) {
    if (!t) return;
    _push(t);
    if (t->l) _make_array(t->l, v);
    v.emplace_back(t->key, t->val);
    if (t->r) _make_array(t->r, v);
  }

 public:
  Ptr root;

  RBSTSegmentTreeBase() : root(nullptr) {}
  RBSTSegmentTreeBase(Ptr t) : root(t) {}
  RBSTSegmentTreeBase(const vector<T> xs, const vector<I> &vals = {}) {
    if (!vals.empty()) assert(xs.size() == vals.size());
    int n = xs.size();
    vector<pair<I, T>> dat(n);
    for (int i = 0; i < n; i++) dat[i] = {vals.empty() ? i : vals[i], xs[i]};
    root = _build(0, n, dat);
  }
  RBSTSegmentTreeBase(RBSTSegmentTreeBase &&rhs) noexcept { root = rhs.root; }
  RBSTSegmentTreeBase(const RBSTSegmentTreeBase &rhs) { root = rhs.root; }
  ~RBSTSegmentTreeBase() = default;

  using RBST = RBSTSegmentTreeBase;
  RBST &operator=(RBST &&rhs) noexcept {
    root = rhs.root;
    return *this;
  }
  RBST &operator=(const RBST &rhs) {
    root = rhs.root;
    return *this;
  }
  RBST deepcopy() { return _deepcopy(root); }

  friend void swap(RBST &lhs, RBST &rhs) { swap(lhs.root, rhs.root); }
  void swap(RBST &rhs) { swap(root, rhs.root); }

  // destructive ordered _merge (max(lhs) < min(rhs))
  friend RBST ordered_merge(RBST &lhs, RBST &rhs) {
    assert(lhs.get_max_key() < rhs.get_min_key());
    return RBST{_merge(lhs.root, rhs.root)};
  }

  // 1 点 値の書き換え
  void set_val(I i, T x) {
    auto s = _split_by_key3(root, i);
    if (s[1] == nullptr) {
      s[1] = _my_new(i, x);
    } else {
      s[1]->val = x;
    }
    root = _merge(_merge(s[0], _update(s[1])), s[2]);
  }

  // すでに要素が存在するときに値を set する。おそらく少し早い
  void set_val_fast(I i, T x) {
    static vector<Ptr> ps;
    ps.clear();
    Ptr t = root;
    while (t) {
      _push(t);
      ps.push_back(t);
      if (i == t->key) break;
      t = i < t->key ? t->l : t->r;
    }
    if (!t) {
      set_val(i, x);
      return;
    }
    t->val = x;
    for (int j = ps.size() - 1; j >= 0; j--) _update(ps[j]);
  }

  // 1 点取得
  T get_val(I i) {
    Ptr p = _find(root, i);
    return p ? p->val : ti();
  }
  bool exist(I i) {
    Ptr p = _find(root, i);
    return p != nullptr;
  }

  // 1 点 値の書き換え
  // func の返り値は void !!!!!!(参照された値を直接更新する)
  void apply_val(I i, const function<void(T &)> &func) {
    auto s = _split_by_key3(root, i);
    if (s[1] == nullptr) s[1] = _my_new(i);
    func(s[1]->val);
    root = _merge(_merge(s[0], _update(s[1])), s[2]);
  }
  // 1 点 値の書き換え 値が既に存在するときに早い
  // func の返り値は void !!!!!!(参照された値を直接更新する)
  void apply_val_fast(I i, const function<void(T &)> &func) {
    static vector<Ptr> ps;
    ps.clear();
    Ptr t = root;
    while (t) {
      _push(t);
      ps.push_back(t);
      if (i == t->key) break;
      t = i < t->key ? t->l : t->r;
    }
    if (!t) {
      apply_val(i, func);
      return;
    }
    func(t->val);
    for (int j = ps.size() - 1; j >= 0; j--) _update(ps[j]);
  }

  // 頂点の削除
  virtual void erase(I i) { _erase(root, i); }

  // 範囲作用
  void apply(I l, I r, const E &e) {
    if (l >= r) return;
    _apply(root, l, r, e);
  }
  void apply_all(const E &e) { _propagate(root, e); }

  // 範囲取得
  T fold(I l, I r) {
    if (l >= r) return ti();
    return _fold(root, l, r);
  }
  T fold_all() { return _sum(root); }

  void shift(const I &sh) { _shift(root, sh); }

  // key 最小を取得
  I get_min_key(I failed = {}) { return _get_min_keyval(root, failed).first; }
  // key 最大を取得
  I get_max_key(I failed = {}) { return _get_max_keyval(root, failed).first; }
  // (key, val) 最小を取得
  pair<I, T> get_min_keyval(I failed = {}) {
    return _get_min_keyval(root, failed);
  }
  // (key, val) 最大を取得
  pair<I, T> get_max_keyval(I failed = {}) {
    return _get_max_keyval(root, failed);
  }
  // (key, val) 最小を pop
  pair<I, T> pop_min_keyval(I failed = {}) {
    assert(root != nullptr);
    auto kv = _get_min_keyval(root, failed);
    erase(kv.first);
    return kv;
  }
  // (key, val) 最大を取得
  pair<I, T> pop_max_keyval(I failed = {}) {
    assert(root != nullptr);
    auto kv = _get_max_keyval(root, failed);
    erase(kv.first);
    return kv;
  }

  // n 未満の i のうち、[i, n) の区間 fold が true になる最小の i は何か?
  // (存在しない場合は failed を返す)
  template <typename C>
  I min_left(I n, C check, I failed) {
    assert(check(ti()) == true);
    auto [x, y] = _split_by_key(root, n);
    I res = _min_left<C, true>(x, check, failed);
    root = _merge(x, y);
    return res;
  }

  // n 未満の i のうち、(i, n) の区間 fold が true になる最小の i は何か?
  // (空だったり (左端, n) が 真の場合は minus_infty を返す)
  template <typename C>
  I min_left_exclusive(I n, C check, I minus_infty) {
    assert(check(ti()) == true);
    auto [x, y] = _split_by_key(root, n);
    I res = _min_left<C, false>(x, check, minus_infty);
    root = _merge(x, y);
    return res;
  }

  // n 以上の i のうち、[n, i) の区間 fold が true になる最大の i は何か?
  // (空だったり [n, 右端] が true の場合は infty を返す)
  template <typename C>
  I max_right(I n, C check, I infty) {
    assert(check(ti()) == true);
    auto [x, y] = _split_by_key(root, n);
    I res = _max_right<C, true>(y, check, infty);
    root = _merge(x, y);
    return res;
  }

  // n 以上の i のうち、[n, i] の区間 fold が true になる最大の i は何か?
  // (存在しない場合は failed を返す)
  template <typename C>
  I max_right_inclusive(I n, C check, I failed) {
    assert(check(ti()) == true);
    auto [x, y] = _split_by_key(root, n);
    I res = _max_right<C, false>(y, check, failed);
    root = _merge(x, y);
    return res;
  }

  // (key 未満, key 以上) で分割
  // 呼び出し後のオブジェクトは空のセグ木になる
  pair<RBST, RBST> split_by_key(const I &key) {
    auto [x, y] = _split_by_key(root, key);
    root = nullptr;
    return make_pair(RBST{x}, RBST{y});
  }
  // [i, inf) の区間積が (false, true) になる境界で分割
  // 呼び出し後のオブジェクトは空のセグ木になる
  template <typename C>
  pair<RBST, RBST> split_min_left(const C &check) {
    assert(check(ti()) == true);
    auto [x, y] = _split_min_left(root, check);
    root = nullptr;
    return make_pair(RBST{x}, RBST{y});
  }
  // (-inf, i] の区間積が (true, false) になる境界で分割
  // 呼び出し後のオブジェクトは空のセグ木になる
  template <typename C>
  pair<RBST, RBST> split_max_right(const C &check) {
    assert(check(ti()) == true);
    auto [x, y] = _split_max_right(root, check);
    root = nullptr;
    return make_pair(RBST{x}, RBST{y});
  }

  void clear() { _clear(root), root = nullptr; }
  int size() { return _count(root); }
  bool empty() { return !root; }
  void dump() {
    cerr << "***** dump start *****" << endl;
    _dump(root);
    cerr << "****** dump end ******" << endl;
  }

  // 列を配列に変換して返す
  vector<pair<I, T>> make_array() {
    vector<pair<I, T>> res;
    _make_array(root, res);
    return res;
  }
};

namespace RBSTSegmentTreeImpl {
bool _ei() { return false; }

template <typename I, typename T, typename E, T (*f)(T, T), T (*g)(T, E),
          E (*h)(E, E), T (*ti)(), E (*ei)()>
struct ShiftableLazySegNode {
  ShiftableLazySegNode *l, *r;
  I key, shift;
  T val, sum;
  E lazy;
  int cnt;
  ShiftableLazySegNode(const I &i, const T &t = ti())
      : l(), r(), key(i), shift(I{}), val(t), sum(t), lazy(ei()), cnt(1) {}
};
template <typename I, typename T, typename E, T (*f)(T, T), T (*g)(T, E),
          E (*h)(E, E), T (*ti)(), E (*ei)()>
using RBSTShiftableLazySegmentTree =
    RBSTSegmentTreeBase<ShiftableLazySegNode<I, T, E, f, g, h, ti, ei>, I, T, E,
                        f, g, h, ti, ei>;

template <typename I, typename T, typename E, T (*f)(T, T), T (*g)(T, E),
          E (*h)(E, E), T (*ti)(), E (*ei)()>
struct LazySegNode {
  LazySegNode *l, *r;
  I key;
  T val, sum;
  E lazy;
  int cnt;
  LazySegNode(const I &i, const T &t = ti())
      : l(), r(), key(i), val(t), sum(t), lazy(ei()), cnt(1) {}
};
template <typename I, typename T, typename E, T (*f)(T, T), T (*g)(T, E),
          E (*h)(E, E), T (*ti)(), E (*ei)()>
using RBSTLazySegmentTree =
    RBSTSegmentTreeBase<LazySegNode<I, T, E, f, g, h, ti, ei>, I, T, E, f, g, h,
                        ti, ei>;

template <typename I, typename T, T (*f)(T, T), T (*ti)()>
struct SegNode {
  SegNode *l, *r;
  I key;
  T val, sum;
  int cnt;
  SegNode(const I &i, const T &t = ti())
      : l(), r(), key(i), val(t), sum(t), cnt(1) {}
};
template <typename I, typename T, T (*f)(T, T), T (*ti)()>
using RBSTSegmentTree = RBSTSegmentTreeBase<SegNode<I, T, f, ti>, I, T, bool, f,
                                            nullptr, nullptr, ti, _ei>;

}  // namespace RBSTSegmentTreeImpl

using RBSTSegmentTreeImpl::RBSTLazySegmentTree;
using RBSTSegmentTreeImpl::RBSTSegmentTree;
using RBSTSegmentTreeImpl::RBSTShiftableLazySegmentTree;

/**
 * @brief RBST-based Dynamic Lazy Segment Tree
 */


template <typename T, typename E, T (*f)(T, T), T (*g)(T, E), E (*h)(E, E),
          T (*ti)(), E (*ei)()>
struct Sequence : RBSTShiftableLazySegmentTree<int, T, E, f, g, h, ti, ei> {
  using Base = RBSTShiftableLazySegmentTree<int, T, E, f, g, h, ti, ei>;
  using Base::_clear;
  using Base::_count;
  using Base::_make_array;
  using Base::_merge;
  using Base::_my_del;
  using Base::_my_new;
  using Base::_shift;
  using Base::_split_by_key;
  using Base::_split_by_key3;

  Sequence() : Base() {}
  Sequence(const vector<T>& v) : Base(v) {}
  Sequence(int n) : Base(vector<T>(n, ti())) {}

  void insert(int i, const T& x) {
    auto [l, r] = _split_by_key(this->root, i);
    _shift(r, 1);
    this->root = _merge(_merge(l, _my_new(i, x)), r);
  }
  void push_back(const T& x) { insert(_count(this->root), x); }

  // 列のマージ 破壊的
  void append(Sequence& r) {
    _shift(r.root, _count(this->root));
    this->root = _merge(this->root, r.root);
    r.root = nullptr;
  }
  void append(const vector<T>& r) {
    Sequence s{r};
    append(s);
  }

  // 元の seq は空になる
  pair<Sequence, Sequence> split(int i) {
    auto s = _split_by_key(this->root, i);
    _shift(s.second, -i);
    this->root = nullptr;
    Sequence L, R;
    L.root = s.first, R.root = s.second;
    return make_pair(L, R);
  }

  void erase(int i) override {
    auto s = _split_by_key3(this->root, i);
    _my_del(s[1]), _shift(s[2], -1);
    this->root = _merge(s[0], s[2]);
  }
  void pop_back() { erase(_count(this->root) - 1); }

  void erase(int l, int r) {
    if (l >= r) return;
    auto s = _split_by_key3(this->root, l);
    auto [t, u] = _split_by_key(s[2], r);
    _my_del(s[1]), _clear(t), _shift(u, l - r);
    this->root = _merge(s[0], u);
  }

  vector<T> get_vector() {
    vector<pair<int, T>> buf;
    _make_array(this->root, buf);
    vector<T> res;
    for (auto& p : buf) res.push_back(p.second);
    return res;
  }

  friend ostream& operator<<(ostream& os, Sequence& s) {
    vector<pair<int, T>> p = s.make_array();
    for (int i = 0; i < (int)p.size(); i++) {
      os << (i ? " " : "") << p[i].second;
    }
    os << "\n";
    return os;
  }
};


using namespace Nyaan;

struct Data {
  char c;
  ll x;
  friend ostream& operator<<(ostream& os, Data& d) {
    return os << "(" << d.c << "," << d.x << ")";
  }
};
Data f(Data l, Data r) { return Data{l.c, l.x + r.x}; }
Data g(Data l, ll r) { return Data{l.c, l.x * r}; }
ll h(ll l, ll r) { return l * r; }
Data ti() { return {'?', 0}; }
ll ei() { return 1; }
using Seq = Sequence<Data, ll, f, g, h, ti, ei>;

void q() {
  inl(N, Q);
  ins(S);

  Seq seq;
  rep(i, N) seq.push_back(Data{S[i], 1});

  // [0, r) [r, inf) で cut する
  auto f = [&](ll r) -> pair<Seq, Seq> {
    if (r == 0) return {Seq{}, seq};
    int i = seq.max_right(-inf, [&](Data d) { return d.x < r; }, inf);
    auto [L, R] = seq.split(i);
    ll lsum = L.fold_all().x;
    if (lsum != r and !R.empty()) {
      Data d = R.get_val(0);
      R.erase(0);
      assert(r - lsum <= d.x);
      L.push_back(Data{d.c, r - lsum});
      d.x -= r - lsum;
      if (d.x) R.insert(0, d);
    }
    return make_pair(L, R);
  };

  while (Q--) {
    ini(cmd);
    if (cmd == 1) {
      inl(l, r);
      --l;
      auto [LM, R] = f(r);
      seq = LM;
      auto [L, M] = f(l);
      M.apply_all(2);
      L.append(M);
      L.append(R);
      seq = L;
      auto [s, yojo] = f(2 * TEN(18));
      seq = s;
    } else {
      inl(i);
      --i;
      auto [L, R] = f(i);
      out(R.get_val(0).c);
      L.append(R);
      seq = L;
    }

    //cerr << seq;
  }
}

void Nyaan::solve() {
  int t = 1;
  // in(t);
  while (t--) q();
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3556kb

input:

4 7
abac
2 2
2 3
1 2 3
2 3
2 4
2 5
2 6

output:

b
a
b
a
a
c

result:

ok 6 lines

Test #2:

score: 0
Accepted
time: 0ms
memory: 3564kb

input:

5 4
shrek
1 1 2
2 7
1 1 7
2 7

output:

k
h

result:

ok 2 lines

Test #3:

score: 0
Accepted
time: 0ms
memory: 3776kb

input:

4 7
abac
2 2
2 3
1 2 3
2 3
2 4
2 5
2 6

output:

b
a
b
a
a
c

result:

ok 6 lines

Test #4:

score: 0
Accepted
time: 0ms
memory: 3864kb

input:

5 4
shrek
1 1 2
2 7
1 1 7
2 7

output:

k
h

result:

ok 2 lines

Test #5:

score: 0
Accepted
time: 0ms
memory: 3560kb

input:

3 55
vfe
1 2 3
1 2 2
1 3 5
2 4
1 1 2
2 9
2 7
2 5
1 10 10
1 1 1
2 9
1 8 12
2 8
1 7 10
2 1
1 5 6
1 1 4
1 20 24
1 14 32
1 19 38
2 48
1 56 64
2 58
2 19
1 64 72
1 36 86
2 11
1 117 124
2 38
2 108
2 85
1 112 118
2 153
2 40
2 114
2 80
1 11 18
2 27
2 73
1 159 162
2 84
1 130 164
2 163
2 65
1 150 156
1 101 109...

output:

f
e
f
f
f
f
v
f
e
f
f
f
e
e
e
f
e
e
f
e
e
e
f
e
f
e
v

result:

ok 27 lines

Test #6:

score: 0
Accepted
time: 0ms
memory: 3560kb

input:

60 51
ranhfkbjhkxckkcbhgsspsjcbjgpwcfvmqqlvlfualndmqqsihsfdyqviowu
2 53
2 37
2 33
2 60
1 1 32
2 44
1 87 92
1 7 77
1 56 86
2 17
1 128 184
1 26 159
2 323
2 55
1 24 316
1 435 652
2 316
2 444
1 819 868
2 27
2 912
2 313
1 555 576
1 510 942
1 1118 1269
2 365
2 84
1 595 650
2 1468
2 258
1 1557 1607
2 938
1...

output:

d
v
m
u
s
k
q
c
p
j
j
n
p
j
c
u
s
c
b
p
u
p
c
n
p
g

result:

ok 26 lines

Test #7:

score: 0
Accepted
time: 0ms
memory: 3556kb

input:

32 58
shdnavermvazdgaqioiqictppwhtoplw
1 28 32
2 17
2 12
1 23 28
2 10
1 16 43
1 25 42
2 85
1 21 46
1 42 73
1 114 144
2 42
2 127
2 111
2 42
2 113
2 38
1 164 174
1 104 180
2 134
2 247
1 122 234
2 34
1 324 354
2 265
1 365 383
2 208
2 405
2 409
2 344
2 376
1 344 401
1 258 453
1 73 267
2 791
2 45
2 133
2...

output:

i
z
v
l
c
w
p
c
p
i
p
l
i
t
h
l
l
p
l
l
c
p
l
t
p
l
h
t
o
t
t
p

result:

ok 32 lines

Test #8:

score: 0
Accepted
time: 0ms
memory: 3508kb

input:

78 38
gychxprltqtnidbvtrhunqhtrvknfjtnsodvsqrfczassyiofcdmuospwrcmfloplsojdqjexfszhl
2 62
2 48
2 60
1 31 77
2 46
2 46
1 64 110
1 54 99
2 109
2 41
1 86 196
2 225
2 193
1 63 302
1 490 554
2 264
2 288
1 326 406
1 485 502
1 104 310
2 141
2 645
1 699 800
2 627
1 153 974
2 1811
1 1341 1579
1 321 483
1 206...

output:

l
o
m
q
q
d
v
r
s
u
o
f
r
r
j
c
o
l
o

result:

ok 19 lines

Test #9:

score: 0
Accepted
time: 1ms
memory: 3828kb

input:

100 100
ogaxzfpqrpanbhrhzbpfdkudvzgswxqsqjxiwbzuhzbzlnmsiudvoimiuiguuaipovaiimzqpckpzdjcgazssksjiwypmwtcvhcq
2 32
1 75 80
1 27 91
1 12 98
1 192 200
2 234
2 45
1 243 252
1 208 212
2 76
2 211
2 5
1 35 36
2 154
1 257 268
2 103
1 157 212
1 61 73
2 123
1 355 359
2 225
2 97
2 16
1 105 266
1 412 505
1 50 3...

output:

s
d
g
x
m
z
i
h
b
a
w
h
s
g
i
p
b
m
i
s
l
z
i
b
m
z
i
i
m
o
i
i
v
i
i
m
i
i
i
i
i
u
i
i
i
i
i
i
i
i

result:

ok 50 lines

Test #10:

score: 0
Accepted
time: 0ms
memory: 3856kb

input:

100 100
qmooxvmzsmwfjcyctyjicrarwqcbkzgswopuxwmxyfpfxpalqwhbmeskoopekwcgjekswfdipkmdzkpscfaagihgrpbqgnsfkuhs
1 35 65
2 31
2 65
2 11
2 124
1 119 123
1 16 27
2 7
2 34
2 71
2 28
1 76 78
2 106
1 132 138
2 97
1 74 131
2 22
1 214 214
2 200
1 24 189
1 328 334
2 334
1 256 388
2 14
1 266 302
1 213 431
1 212 ...

output:

g
w
w
g
m
w
a
r
c
o
j
r
p
c
j
j
h
i
g
c
e
c
e
g
w
g
w
j
g
w
w
j
j
j
k
g
j
j
w
j
w
g
j
w
e
c
g
w
c
g
c
c
c
j
j
g
g
j
c
g

result:

ok 60 lines

Test #11:

score: 0
Accepted
time: 1ms
memory: 3568kb

input:

100 100
uwnwvbymyokfijvijqnbzuhaallrgzyxsdpfaybnemreyfzqfmkhbxhoagexizrhbgnpymliarhaqgwfkxeblildhkqturevkcei
1 16 19
1 52 84
2 98
2 111
1 130 133
1 26 96
2 45
1 13 96
1 15 43
1 46 95
1 365 373
1 65 251
2 214
2 284
1 551 559
1 61 67
2 319
2 341
1 18 409
1 352 643
1 909 1244
1 887 1195
1 1757 1849
1 1...

output:

l
q
y
r
f
b
m
p
j
b
k
g
y
m
e
p
m
l
k
f
e
n
z
u
m
m
m
h
z
e
k
n
q
m
k
k
h
g
b
k
h
a
h
k
b
h
h

result:

ok 47 lines

Test #12:

score: 0
Accepted
time: 0ms
memory: 3856kb

input:

100 100
esqkyrydeoctndqmecklzayohrvnfxxqkiksvojrdmdscoosjgjaygenwliocibxhgswwiyvzukxcgltuduvauqdzkizhiydtxcj
1 8 42
1 27 133
1 95 126
1 89 151
2 216
1 34 242
2 260
2 59
1 545 545
1 155 540
2 458
1 752 825
1 540 610
1 878 1006
1 833 1168
1 139 1465
2 537
2 277
1 421 1725
2 1659
2 534
1 2307 3992
1 47...

output:

d
v
a
o
s
i
r
s
w
a
r
v
s
x
j
x
h
v
i
c
s
x
o
c
w
o
i
g
b
b
b
w
i
b
x
b
b
c
c
x
b
x
b
b
b
b

result:

ok 46 lines

Test #13:

score: 0
Accepted
time: 0ms
memory: 3588kb

input:

7 50
padvejq
2 5
2 3
1 7 7
2 1
1 6 7
1 10 10
1 10 11
1 12 13
1 10 11
1 6 15
1 6 22
2 6
1 30 35
1 3 5
1 26 52
1 79 80
1 25 49
2 56
2 18
2 44
2 66
1 40 66
1 76 87
2 145
1 39 74
1 180 180
2 81
1 106 147
1 129 134
1 133 161
1 178 178
1 17 90
1 138 180
2 195
1 195 362
1 383 436
2 229
1 91 265
2 681
1 644...

output:

e
d
p
j
q
q
q
q
q
q
q
q
q
q
q
q
q
q

result:

ok 18 lines

Test #14:

score: 0
Accepted
time: 0ms
memory: 3780kb

input:

55 3
ztlgpnoiedxyxqsaxzxoqffyozbkqprfjuutsdhpcbvrqjvcylaxmmk
2 37
1 47 50
2 17

output:

s
x

result:

ok 2 lines

Test #15:

score: 0
Accepted
time: 0ms
memory: 3516kb

input:

98 33
zhzoaivphsefnoimiurtiyaxzcbbhngpjmkbnqadfzeygwltpvrpnhndqlpohkdjvlvjfgrzascluodrqaokrrmozbxflwqplp
2 73
1 88 88
2 62
2 44
2 73
2 27
2 47
1 73 84
2 88
2 103
2 29
1 43 98
2 4
2 2
2 4
2 26
2 153
2 40
2 38
1 79 157
2 55
1 147 198
2 204
2 44
2 67
2 252
1 34 263
1 334 352
1 325 342
2 351
1 24 550
1 ...

output:

a
k
y
a
b
l
r
b
h
o
h
o
c
r
d
q
p
d
e
n
a
u
a

result:

ok 23 lines

Test #16:

score: 0
Accepted
time: 0ms
memory: 3564kb

input:

54 21
rjyiuclnplxpbqudhvycgxugpgwcxfelztyhtpnzjbcxjlqbjxmeav
2 51
2 16
1 39 50
2 60
1 4 39
1 51 94
1 53 109
1 42 123
2 193
1 152 243
1 247 282
1 269 412
1 302 346
2 28
2 460
1 526 559
2 129
2 611
2 253
1 531 630
1 422 671

output:

m
d
j
h
d
n
l
q
h

result:

ok 9 lines

Test #17:

score: 0
Accepted
time: 0ms
memory: 3824kb

input:

97 75
tzpklhpavuheakijolxdhfgajoozpbrwfzrnbfnlzxjnphqwkakyemnqfiucvhncxixiaowjfksvfnjgageqyblunzuhpriee
1 23 72
2 29
1 114 117
1 117 118
2 51
1 71 110
2 48
2 38
1 76 118
2 23
1 157 218
1 257 283
2 97
2 116
2 37
1 125 158
1 54 343
2 45
2 69
2 126
2 509
1 461 620
2 458
2 7
2 202
2 530
2 107
1 683 735
...

output:

o
b
r
b
g
a
e
b
z
x
a
a
x
p
m
i
w
w
a
c
n
a
i
i
a
i
h
i
i
x
i
o
u
v
n
i

result:

ok 36 lines

Test #18:

score: 0
Accepted
time: 0ms
memory: 3536kb

input:

16 65
bgmceovwgjsxvolb
1 13 14
2 5
2 16
2 9
1 7 17
1 16 20
2 12
2 12
1 34 34
1 21 35
1 4 30
1 6 13
2 40
2 15
2 77
2 38
1 31 46
2 79
2 75
2 71
2 39
1 82 90
2 32
1 61 80
2 36
2 93
2 26
1 81 128
2 78
2 158
2 136
1 150 154
1 147 165
1 135 135
2 150
2 99
2 78
2 152
2 178
1 102 157
2 4
1 199 230
1 274 276...

output:

e
o
g
g
g
x
v
o
s
v
v
v
s
j
j
v
g
v
o
v
o
v
v
o
o
c
v
v
o
o
v
v
l
v
v
v

result:

ok 36 lines

Test #19:

score: 0
Accepted
time: 1ms
memory: 3560kb

input:

63 21
rwhschtzyizzjldgrkifsjesoxchfvuekdyromzfdzxkxjyrpugmzkbdfspixeo
2 54
1 39 61
1 24 42
2 88
2 12
1 48 62
1 33 89
1 49 104
1 194 207
2 239
1 40 80
2 185
2 21
1 217 237
2 194
1 109 163
1 100 253
1 300 320
2 205
2 208
2 531

output:

k
k
z
s
z
s
z
r
r
s

result:

ok 10 lines

Test #20:

score: 0
Accepted
time: 0ms
memory: 3612kb

input:

22 16
hpkhufjykgzhwigldlutfg
1 14 15
2 13
1 12 17
1 11 25
2 38
1 2 29
1 26 34
1 4 5
1 31 57
2 3
2 87
1 85 87
2 24
1 84 103
2 15
1 134 134

output:

w
l
p
i
z
j

result:

ok 6 lines

Test #21:

score: 0
Accepted
time: 0ms
memory: 3560kb

input:

68 37
cqctxalmejoztbwmgfmjxuoptmqzoavhpyiwumhvjzsuclolxwleeoequbukxrjjnjgc
2 38
1 45 67
1 3 88
2 110
1 12 148
2 71
1 62 314
2 405
2 528
1 400 458
1 171 538
1 481 813
1 790 891
1 1426 1429
1 1025 1373
1 146 238
2 942
1 1749 1839
1 1300 1502
2 388
2 1124
1 2017 2132
1 2221 2258
1 1842 1860
1 487 2104
...

output:

m
w
u
e
r
e
j
o
o
q
e

result:

ok 11 lines

Test #22:

score: 0
Accepted
time: 0ms
memory: 3600kb

input:

20 80
ajgneaujzddnggsbcwom
2 20
1 5 20
2 9
2 13
2 24
2 18
1 11 27
2 13
2 13
2 17
1 19 50
2 8
2 8
1 81 83
2 12
1 67 76
2 70
2 44
1 41 71
1 66 106
2 66
1 140 147
2 95
2 41
1 156 173
2 76
1 151 174
1 19 109
1 135 178
2 125
1 233 355
2 295
1 153 177
2 296
1 112 156
1 72 548
2 815
2 921
2 622
1 461 486
1...

output:

m
u
z
g
d
j
j
z
a
a
j
b
g
g
s
n
g
g
b
s
b
c
b
b
c
d
b
g
g
b
s
g
g
c
s
b
s
s
s
s
c
s
s
g

result:

ok 44 lines

Test #23:

score: 0
Accepted
time: 0ms
memory: 3584kb

input:

11 28
gjecjaxeosx
2 3
1 4 6
1 13 14
2 1
2 10
2 10
2 12
1 1 8
2 8
1 7 7
2 10
2 23
2 12
2 10
2 19
2 7
1 19 19
1 17 21
2 12
1 5 18
2 16
2 26
1 4 11
1 52 52
1 18 35
1 28 45
2 79
2 56

output:

e
g
x
x
o
c
c
s
j
c
x
c
j
c
j
x
j

result:

ok 17 lines

Test #24:

score: 0
Accepted
time: 0ms
memory: 3632kb

input:

71 95
ioujmdnmwigsjkhmywaqupgclgtiihkmrrnwxhwnorqeveqnnlwbqjsuzywadknkuxkdatr
1 41 45
2 7
1 12 68
1 111 125
2 53
1 140 148
1 53 59
2 161
1 8 49
1 93 183
1 38 234
1 234 260
1 128 514
2 500
2 272
1 35 66
2 903
1 569 926
1 1093 1289
1 987 1397
1 465 1449
2 2520
2 2453
2 2803
1 2461 2807
2 2962
1 2554 2...

output:

n
m
t
q
n
k
a
a
n
k
a
v
y
a
l
n
e
b
l
z
u
b
w
l
u
u
l
u
u
j
s
j
j
j
j
s
u
s
j
s
z
s
u
s
j

result:

ok 45 lines

Test #25:

score: 0
Accepted
time: 33ms
memory: 9880kb

input:

66343 13562
iacwskbysgfuinrclsxrluublrwdxttfwsoebgorohvbsnaivopnivgyzbxepjlghteqivamviwjjrsblkrbvkkhxoptwawnxwvtmecankhkmckptpoxhrmxfemfkdafwktwdfkbizrefgdssqhqzxbcppsotwrwjlrliwgtjagsjcapyvwvevllphvrnmnmbsesfhbvuhpwdpzhwsuufqwlpzskyzstvtafbtvermbbwsizqmnclqyoxnuyzbllrjaiwrifvwjmevzhpnoxmlqalktkftao...

output:

j
v
x
j
z
v
j
z
v
j
o
s
p
m
t
n
y
g
z
g
d
d
t
a
w
c
g
j
m
d
e
y
q
d
h
g
s
w
u
m
a
i
d
y
z
v
g
f
f
r
r
l
x
z
c
q
k
n
y
b
p
e
p
v
k
e
h
r
y
c
u
p
s
w
f
w
w
y
w
g
f
i
t
i
t
u
f
u
f
w
p
w
f
f
w
f
t
f
f
f
f
u
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
...

result:

ok 13380 lines

Test #26:

score: 0
Accepted
time: 39ms
memory: 12360kb

input:

93099 17769
dgtoqnvhdvkobrcoynbzfwflnxicnuvudnqicwlclkoxpjengcolobhabdmupatbllufviqczdasvbvrznfratthhmvvnzxrreeiblgrklwnooyjubtsfuzqqqmounfnsrgrfucmbwssrjwxevzhskscdvuepmtyaaoxbyybicnwehrfmcygwzcaqfihjywlqenzbtlhsvfdvpxwixrywgkpreopnhsqdvagconiylmjgstesvqtdifcqdubzciikkucxcubwojjcikhmzjbmcwfsmbfsbwb...

output:

x
h
h
c
q
s
v
x
o
n
a
k
a
u
f
v
d
d
v
d
o
r
m
m
a
b
p
q
r
x
r
t
q
q
z
p
q
l
r
h
k
m
o
d
e
y
b
i
j
e
k
t
u
n
l
e
x
z
h
a
w
r
l
x
i
a
l
r
g
s
u
j
x
f
n
n
k
c
z
a
s
s
z
c
q
h
t
w
c
q
j
f
i
r
p
f
n
t
u
t
r
p
e
u
u
e
a
b
v
b
j
z
v
v
u
x
u
u
v
v
v
l
t
x
y
g
u
g
h
v
n
z
n
v
h
n
f
n
n
n
h
n
h
n
h
h
n
h
n
n
...

result:

ok 17585 lines

Test #27:

score: 0
Accepted
time: 112ms
memory: 12788kb

input:

53029 61324
mifxlfvgolhbjnmaselkvqbhveqgltzqwzeiikivjuujulyyqtkhncstbpggxogfvwizlamutlcihkkrkzuiqyzgfbfbsptvqwlcchphnukotmyvfrleppxugztvwklrwmmyyrxtltkxzjrlhzfkxalfvzugcegsrwarmwuxwpcchxjjnpqqavqtrszbxiqfdsvuxvuobiiplufmkddenfxunpdvuzqqjptksssobfrwsczehrdkyyjcfhyvfttmuyfvjfimkulgvtagoyodstisedqfmeur...

output:

n
l
t
c
k
s
z
t
z
q
m
o
i
f
g
h
n
g
b
n
y
b
g
h
o
b
i
c
q
b
f
y
f
y
b
x
b
b
q
f
y
u
y
n
b
b
f
f
x
f
x
x
x
x
x
f
x
x
f
x
f
x
f
x
x
x
f
x
x
x
f
p
x
f
f
x
x
x
x
x
x
x
x
x
x
x
x
x
f
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
...

result:

ok 61140 lines

Test #28:

score: 0
Accepted
time: 135ms
memory: 12548kb

input:

33160 80441
zfbnpebecrufziemjdyvsxpihpvgievxlxzirbvsvyafsuhouykuuvksdnjxsmkvnqmrsmsffdzwrbqgqrczbykpkduivuuhuzywnbprcpfeyayumthfqgabvvhnzwtyyldjyhlevhqnixopcrosvrjlsgvcpkkvsplttieicwjrelgqkjxziuqumriqaaaexwnxkcarsvjxhckkkfqcvpfzpvkkgdhvkgxcmvtwstspknseqkillovzkxsduhfmutijgjswgiyctxjgpeugdlsdqcnjuxjo...

output:

g
d
h
r
g
z
f
g
n
j
v
t
g
z
c
e
t
r
l
s
d
p
r
p
x
w
a
h
o
n
y
g
d
w
h
p
c
o
u
s
g
c
t
s
l
p
l
d
l
k
n
a
e
k
f
t
l
r
l
d
u
t
s
m
q
l
u
z
a
w
e
v
j
l
v
j
z
n
e
e
m
e
w
l
n
e
e
d
l
g
e
z
w
l
w
j
l
g
w
l
w
g
g
d
n
l
w
n
w
w
d
g
n
d
d
z
g
d
d
n
n
n
n
d
d
d
d
d
d
d
d
n
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
...

result:

ok 80256 lines

Test #29:

score: 0
Accepted
time: 202ms
memory: 19300kb

input:

100000 100000
aqpvgrgtrawwwmtyzmienmokigmtyjjparmargadbwbkkahfvvswcsuosbpvskmxplykfkvrmpqlqvqcuzvuzktmnsnlrbuuhlsgrpgfdzpwrbpedtwlgabcllktlpevunyqtulkllaoaexkwgopbldegfxyypsblkdvqdxzyhzecyfgxxpufpndpzyiznfsachpsaswwkbljlnxmjehzgikrtjcfbfvxiomtbzuizribenbutjcqguvodeaqjrjpfidrgzxcnvtvtdnmspvymnwndjluz...

output:

h
t
p
u
o
r
r
s
x
x
q
a
h
y
w
y
x
t
w
g
r
t
t
c
h
r
r
h
l
f
r
x
h
r
t
s
l
x
s
y
b
k
m
a
u
r
t
p
z
r
a
s
j
c
z
e
k
f
c
o
x
i
j
t
a
t
n
h
m
k
r
f
n
v
y
j
l
i
o
c
m
f
c
m
n
l
n
f
h
u
f
l
f
f
f
f
f
o
h
u
f
l
u
h
h
f
f
f
f
f
f
f
h
f
h
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
...

result:

ok 99821 lines

Test #30:

score: 0
Accepted
time: 180ms
memory: 19356kb

input:

100000 100000
pjggpbuyoupqecxodzgrbjtrgyalizimxruhbpixlmnxkvnioawxsvwcemnxkofqsrizqofutgbgaqfxejaemtpgqexhtsccaodnstqdfcudjcekrozwboboframmpjatlsuasqyaxkfcufckaldvmsohjwscdlgbbzmvgmpqtjrbqjtfnpqpsxcjhgrniefodfffsuykqvnlmgsxhsefejsaoggrdgplnfbyebntquffbtmqlaameeddkiwbmuabhbvvzppiwfugkegfkarccnbwszpsd...

output:

k
b
j
g
m
s
o
f
d
r
g
w
f
u
s
s
t
k
l
y
g
h
t
y
t
n
e
g
z
w
l
l
z
o
r
z
t
y
w
n
v
z
o
d
k
y
s
y
n
g
k
q
c
o
l
t
f
t
f
k
w
t
r
a
j
n
h
c
x
z
f
v
e
b
v
x
g
q
t
x
u
m
f
q
b
b
y
x
s
m
x
p
z
v
k
f
s
f
f
f
m
f
z
g
f
m
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
...

result:

ok 99804 lines

Test #31:

score: 0
Accepted
time: 191ms
memory: 19524kb

input:

100000 100000
dkmpyawnafphskjcmmvwonomqbongmzakstespsibkdxwctouhmbckimjfuzuuvctkahxciocgnhkcahpaemvpiuosomxbwtgoefcxbcyonafcbydnuaqdyrefusewwevxfvclsabnkzthastdyzzcdrkyqjddrdivnoxwejmfczxdixquwchjbwuctptuacwphkqbwmaumxvsnygbsegbsjoydlxewhazykzsnwtdbbeebudijonckcnlbqvzzrcsolfgutnikvfjsfkocrvprwsfkpwn...

output:

c
v
i
f
e
h
w
z
b
u
y
a
d
m
c
a
t
p
d
z
x
h
p
p
v
j
c
z
s
o
e
k
l
d
p
u
h
a
q
b
j
y
r
g
l
x
q
v
r
f
o
p
a
q
i
m
c
x
m
g
v
n
f
i
f
k
v
k
n
k
l
k
u
i
a
n
n
e
j
w
t
t
a
f
r
v
t
j
s
v
a
f
m
t
b
p
x
k
r
y
o
m
t
h
y
m
i
b
u
h
k
h
m
i
m
v
i
m
m
m
m
i
n
m
m
e
i
e
e
n
n
n
n
i
n
n
n
n
n
n
n
n
i
n
n
n
n
n
n
n
...

result:

ok 99829 lines

Test #32:

score: 0
Accepted
time: 189ms
memory: 19516kb

input:

100000 100000
gvqjnxqeabijiawjbhheizpuiozajuvothhuvimknmyfndmnqxxceihlficxmenudirlvmgmwhmzwjylkbfhsxsvynontbfjvolwelrbjnicplqnkqqasttefholjfaaqqzpoafyotsjruwxgcwksbtxlxqldzbtfdtfxbpglrfrbsaovlbbdyglnjzfhzmhmjtoauxijuurnmperkvzrmuhtaycosjwmbyirphuumphkoklhexhuderxphoyxtwcrdggrmzgaxhcnoprnnpkydsxrgter...

output:

f
d
b
i
d
l
c
f
m
r
p
q
o
m
s
b
u
q
p
c
n
w
x
x
z
q
l
g
k
n
p
p
h
u
y
p
h
t
n
j
c
u
n
v
z
f
e
h
m
i
x
t
f
j
o
m
x
o
m
x
q
w
o
i
y
i
l
t
f
b
h
b
u
x
m
b
x
x
m
b
i
t
o
x
x
c
x
x
b
z
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
b
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
x
...

result:

ok 99830 lines

Test #33:

score: 0
Accepted
time: 5ms
memory: 5136kb

input:

14399 1658
uawapyjjyxmgwemdjjlgubpvzkdhtdxccnpzesguutplcxjgwlmjdkyytqsnejmgzrihgimhkirnokbtwkclqfyvnqfalrduhuuyogzbqyqarmujwnkwxkctugespbdzfxiopdijnqpgkcrbpategezsuweucsfhnxdwrrjrbuukwzlbwcwngvsswavbxsiwtojwcqbgljihfpdzmueeczebfubzzuedgvflrdgllbohcrfwshlafsoecfiafmlvvashqgalvdhncpvdonqxdamlbfswfewxa...

output:

d
d
a
d
f
g
w
w
w
q
g
c
x
g
l
f
o
m
s
f
d
r
d
f
h
o
n
m
l
z
g
d
z
j
z
e
v
l
b
x
l
x
a
l
t
o
g
k
b
x
o
x
b
i
c
n
c
d
b
l
l
u
k
e
i
a
r
w
m
t
v
u
v
h
o
y
i
h
h
v
q
g
z
q
o
z
a
l
a
y
o
l
f
s
r
y
a
m
t
a
p
d
l
r
q
r
p
a
r
r
r
a
a
a
a
a
a
a
a
a
a
r
a
a
a
a
a
a
a
a
a
a
a
a
a
a
t
a
a
a
a
a
a
a
a
a
a
a
a
a
...

result:

ok 1466 lines

Test #34:

score: 0
Accepted
time: 10ms
memory: 5976kb

input:

26317 4102
nqjobpbidqvghuirxdsmagurasoouehgcgqziubkplbsqebitvzfgsiibjprxlbmjvjmhisjpzricsuzoajybjdrrlbiuwpqnrpfsmikipcffhvbntqlrrwihwjhclqbjrnlkexcmyydnjwafwmgwrxmsrglwgfpvmjaycsppgthdsulvteqarpkdygpvxvbfozygolrrewxlermldwgbqzflvutcjsrlnsswegukyyzwpdebtfzvivayneldrqcpnwkpuvpyuupjejtysshrzqjnvfephecw...

output:

f
b
o
h
y
x
f
q
l
p
m
r
m
w
s
p
q
v
y
v
k
a
c
f
h
v
w
w
o
d
q
l
x
l
p
a
f
p
p
t
d
r
m
m
o
t
t
a
a
a
a
a
t
o
a
t
t
u
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
...

result:

ok 3912 lines

Test #35:

score: 0
Accepted
time: 111ms
memory: 11448kb

input:

35283 64257
sccsirloxvmgqsglcjrvbaltmxvhqofggtqzrugntookpiiluzzkmqmgztuknvxlzyxpdzbineimtkobrwsmwuysppcjmdszrwpxnvtrigowbxonqgfchvybhxnbgpptuyzqruieaakgjsiolvlbhlwpnyqdepkckdvfskuyrfvtoiprrvreiilelylvntcbwpiaxdaucgwyehknerehpgkusmnkvhkmnunvlqlkdjzgwdvqggtlwekiuwrhgqxdtwyoqzfdisqqdqkcpshpcxesyffesird...

output:

z
d
f
a
f
a
o
k
l
n
v
y
u
x
o
v
j
q
y
b
h
v
a
i
s
e
u
p
h
o
f
k
o
s
o
m
k
c
r
n
l
j
z
e
o
n
g
q
m
w
k
b
r
f
m
y
j
f
o
e
w
r
w
x
x
e
d
x
z
r
r
t
x
m
h
i
t
p
z
p
h
k
m
j
e
a
s
j
u
l
b
m
p
l
w
j
o
a
h
r
y
b
c
p
i
z
j
z
w
p
b
m
k
o
w
t
e
p
g
m
p
o
x
e
v
l
w
e
e
r
k
o
w
o
i
i
q
r
b
k
r
i
x
g
p
a
x
r
n
k
...

result:

ok 64065 lines

Test #36:

score: 0
Accepted
time: 50ms
memory: 8776kb

input:

31235 35618
ltwfbfuvmcjrldwnjqyqalkmsjumotznfjdjuerubnposmbqpboeypqmbmeqedocwmmztxkgicfksjgdxtxaafhuwsxqvpenjxaydsjonsopauqgudywqgertqvlhjgbouposafiafbcnqkdatahnqapodyyfaiwewqwhqjmxwxozkvvfwmkzsoykfptsijncaydhuswvqngrnwnneenxssmmetvjcadzjzedeikgnahuqpoupgjrtiykxsmibtqmccepkawfefhalwxmvtmbfekbgqqcrfo...

output:

w
s
l
q
u
h
n
k
m
t
w
m
t
p
w
a
k
y
t
u
m
x
g
a
k
t
d
g
a
b
d
p
b
o
l
d
l
j
j
l
e
p
a
q
x
y
y
e
x
e
x
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
...

result:

ok 35433 lines

Test #37:

score: 0
Accepted
time: 27ms
memory: 8552kb

input:

45099 14409
qvtfslkhgcfztyiykqcxtxihnlkzwpqujqstzgqxqtxhbwjkaokwewlstbyrfujgewwpigyullyduznkxciljuhijzazwacgprwukztjbaefzyxqmsbpxkoukqnbkckexrclnkzweyppsimwihxqifcbnpbufkxxnfnffvokbgoywqabhjptfovynwpopynvxffepldczqpkkybipwdcizbmlwwjdpqgzizcbkudnfrixlsifryofyltzbcdprzkpevwaklwvrrsrznerivwjhfzvvbieyun...

output:

h
q
p
t
m
e
y
q
a
d
m
p
c
e
d
o
k
f
o
u
n
y
f
w
f
u
v
p
l
b
w
n
p
w
n
v
n
r
l
w
k
w
r
c
y
a
b
o
q
v
o
a
e
w
i
v
c
h
a
l
o
j
m
r
r
v
z
o
a
v
r
h
r
r
r
a
r
o
r
r
o
r
r
r
a
h
r
r
h
h
r
h
r
r
o
h
h
r
r
r
r
r
r
h
r
r
r
h
r
r
r
r
h
r
r
r
h
r
r
r
h
r
r
r
r
r
r
h
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
r
...

result:

ok 14223 lines

Test #38:

score: 0
Accepted
time: 56ms
memory: 10544kb

input:

60832 27152
ldlginiyugzdpagonvmivqfawhkkwrooeadzuaawjokcyrchrymjbsicvjzlwyihvuxojabvqbidivxxsqonuvcsvltacjhbthlfzizsfknqhsudzuuyjmnjhwryrqegswfnsycnhhqkchwjexfiyktkgriilmerwxighlktuzvreqqbgrxsgkgvyxiesjdkpvpokggqrteczvecfxljlpivxflyqhydcdxxvhhwystnckmuszfkthuesoulxhrxxnpngourkawyjbfknztjosupnpajvshw...

output:

e
b
d
t
y
r
r
b
t
a
q
l
b
q
s
t
k
r
k
c
y
i
e
m
k
r
b
s
h
s
s
x
g
l
h
p
h
c
l
d
j
p
w
f
m
c
m
y
v
y
y
g
d
i
x
s
q
r
d
y
v
p
k
h
h
b
a
g
h
y
i
h
o
y
i
n
g
p
n
g
u
n
u
u
u
u
u
u
u
e
n
u
n
n
u
n
u
n
n
n
n
n
u
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
...

result:

ok 26982 lines

Test #39:

score: 0
Accepted
time: 46ms
memory: 9420kb

input:

48233 23109
noxtyclqgryeiuvdpcoiqjlqajkpzkpzzceorvcuuxgmtexalfcbygudmztvdvjcafofqpsiuwbookezbmkmccviaerlfdtsiomcxhikpjgphoizeflsnvbkyyplxdvcwpvmbmvdkpxlnrenkenykmelceusuwangnsuowrwcnjedpvdtjtaunqtscklolnigaxknkhuxpqbubblowgrytddoewyayatlydoitsxmylgxbpdvgulxmpacrzqtrldcjkqnzcvaohfltpismzayveotjylrqry...

output:

h
e
e
s
b
b
j
x
p
d
n
t
d
t
z
w
k
z
u
s
t
a
g
c
l
s
u
x
d
e
t
v
k
u
d
i
l
n
k
g
c
s
g
j
e
v
i
m
v
y
m
z
e
g
u
l
o
w
u
e
i
e
x
c
b
q
p
r
y
n
j
m
g
f
c
t
v
f
t
y
v
y
p
d
c
g
y
u
e
g
p
i
b
i
y
i
m
i
h
i
i
i
h
i
i
i
y
i
g
h
h
i
h
h
h
i
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
...

result:

ok 22928 lines

Test #40:

score: 0
Accepted
time: 50ms
memory: 7828kb

input:

19534 30752
tvlznxfdjbpsmeohscssdxoerclidqpebiuzpmyxxwiuvcelgfblphqplxtxbnbkpzrotktlbdwbdqsdtlqjatbaxvogzqhekedlrgyydcnxyahrlfiyaucyiufdoitlffxdwswfhlbjepziakeyywmrbqjtgfaxmbailqjwzmewumhtlobvwaugxsysdsnzmdbjdorozggqjclhkkrmirjssftpxhgwwwlapfzjxwtyxjnxheknaddenflgpvznzrfrfocadnmxkdjdkacaslixbtwlwahl...

output:

z
j
u
a
t
y
r
n
f
o
a
y
b
q
l
k
f
y
e
l
f
n
v
l
t
w
h
y
n
p
n
k
c
b
o
t
t
n
j
y
j
h
p
u
v
n
t
r
b
z
r
d
q
n
h
c
d
d
a
q
t
q
b
b
k
v
c
b
p
b
w
e
x
x
i
i
w
b
e
q
c
i
i
i
x
i
i
i
i
b
x
i
i
w
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
e
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
i
...

result:

ok 30569 lines

Test #41:

score: 0
Accepted
time: 89ms
memory: 12032kb

input:

54830 49382
fijhontrdocnsxkknbsgfuioqdgyszerqjhhlpotejpisgsnckxipjdezxgnbfwvfhqpflmjjdaqgukgaxxiwbkafucsuieuxzkuesnwqwknrhtjmzzmxygnlgscnwlhpudmrzhweepnjhjbvsaayigpouetjffbgbclkuzdgyjjlhdakfyooyqfhofslursyjvwakcllxwthanmwbqwekfpbxjbmttcxjleqfwygrtwbfhpwicjoypixoctnljppgjamxjlehsfrwruascbxccybxoexysq...

output:

k
z
d
m
u
i
l
b
t
r
k
w
q
u
y
z
q
t
s
j
w
d
v
q
e
t
n
q
m
x
q
v
k
h
k
v
q
y
q
b
r
t
d
k
q
t
v
v
v
y
y
x
y
i
y
i
m
f
x
f
f
x
f
f
x
f
x
b
f
f
b
f
f
f
x
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
...

result:

ok 49183 lines

Test #42:

score: 0
Accepted
time: 22ms
memory: 7276kb

input:

28520 14746
fznhmapxptadjudobhpejezslmfbnjlflbrxelicffsnzarhmxpheztanuwufuujrfktohudhkvexyjvjauqmxkllmecvhikjcurtsdpvcinmeysrbxlhstycoortqpgyxgzthwkvjvmixvynimbsaaptreoecbpdwffqkautmsivkiiumhedysjmmbsdrzouqjjdalruaocbtcjshdlzifbpciokviyeyqiriqanwgboethixtzvgutroqtoresezikliffsxqaogaasushghyvatnohtmy...

output:

w
w
i
c
r
q
j
u
f
m
x
p
l
b
r
u
r
q
c
g
e
v
p
u
n
k
m
b
v
w
d
g
r
v
j
o
s
h
h
x
j
h
v
e
a
r
j
n
b
h
s
h
y
a
a
a
a
h
s
h
h
h
h
b
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
h
...

result:

ok 14570 lines

Test #43:

score: 0
Accepted
time: 52ms
memory: 9884kb

input:

42807 34106
oqpuwitmeliciaarhambsmhvaukyglqrbwtxqkcghrwkybhhuthovssdilmtwmumckcpktjoyrsleimzspupqazfvcihfnyywyosqzfhkegatwyfjlpogshouvjukixhsfypgxisnuloawbfwaorcihhnegitubtykglypvzysocmjbzpztzvwcdugrinwamcipinropzuquhnujtfwbjanmwxknfepipylsibgrgzdfrnqgsunxdnknzugxftweuzbrxhvywjhnpkycoqmyhkuxiuyojbfv...

output:

e
h
t
r
s
z
a
s
t
y
g
d
s
y
t
y
b
z
r
x
l
c
z
s
p
j
d
a
q
o
v
y
t
h
b
g
v
b
b
x
v
e
i
e
p
k
q
b
y
m
x
m
j
m
q
u
v
j
i
s
o
k
k
o
m
j
o
m
s
p
b
q
i
m
a
f
o
o
o
o
u
k
a
k
f
i
i
f
c
c
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
...

result:

ok 33920 lines

Test #44:

score: 0
Accepted
time: 27ms
memory: 6004kb

input:

13973 16838
iycscftxnmnxvhqwfgkzbjjeepbhpqkboiolladbwqptuusaevsdkeeupvacpidxlatnpvwiamrhpwckbwshirjarpppgnwvdawwkwvaednvkmumozcxphnmnllhomgfsulvmkszhtcymuxbaxypwreuuvqkxuhexylfwxeudkafaqwvqklzrtynjodfdsvxiichystsvkuwyxaeuuxglhhtcytnvulnmnmhvyfgkjzvfaylnwjhwdoygubfidxpetflrzjewfoocrdmvfdjauhucrnmjagu...

output:

q
d
q
x
u
z
j
l
c
t
m
p
v
o
v
s
k
f
j
y
x
u
i
l
q
s
n
w
x
f
k
z
w
i
r
s
i
p
g
r
c
w
r
t
b
j
s
f
j
r
j
r
r
r
n
j
j
j
w
j
j
j
j
k
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
...

result:

ok 16666 lines

Test #45:

score: 0
Accepted
time: 43ms
memory: 11688kb

input:

81914 20804
ehvbyufdkdfiazqedujglfbpezbshtgmupdwiurzmewjdynstagexrpsopppzopmhryloobfbqwiwnprkfxfjhzgzrulibqmqrxgjcabouopjpevhqviwiuhslcwunzpoklnihldsduvxrqceukhmxpycpljnhyylmeendwlhzhshwvgrpbeprhzcqsgelqkwkuoulycbgfylqwnbtyqnddbmtultqfjgpgadmfqxgrnoqiqqeliiyeuhjbbehmhhoihgncxxxmedwtfkajxjuhthwvqzdcq...

output:

m
r
s
u
z
a
l
l
k
m
a
h
e
t
a
n
e
i
l
b
i
r
j
r
q
c
p
r
n
w
b
x
c
s
c
d
d
g
n
r
u
t
n
o
f
v
o
n
u
c
r
i
b
a
r
h
g
u
k
p
v
j
h
s
z
i
g
c
x
p
x
k
z
c
k
q
w
h
d
i
g
j
c
d
g
h
m
y
a
i
e
z
c
k
h
n
v
a
k
i
k
j
h
e
g
h
b
r
k
i
u
z
k
c
u
t
u
y
u
u
u
i
u
r
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
...

result:

ok 20618 lines

Test #46:

score: 0
Accepted
time: 57ms
memory: 9380kb

input:

32456 38529
vjxreezgeqxozkfsfgjlpixruyeqgnoxzpvicmvagnfkkeebbzinyyrockfcikbapetadmpybzpriznhtfqkylnykggnhirhpzjdwotrzttmqkgfqwbynkpsybblgzllqmkpwjaucyhnjadjlttzeefzwioafbzeyxtprqwagafdbxgrgoemqqxrandyjdigwjghctfqoznopgvlwloidifmfxaobejdeoygaeasvkrwgfdafwwemdxawalcsatqhsbdvxjxzrhphyqiasheeqwuzvcngkog...

output:

o
i
q
v
s
f
f
t
x
e
n
u
m
k
d
z
y
m
j
g
z
h
y
k
q
x
v
q
u
o
f
x
c
k
y
e
n
p
i
n
c
r
q
v
l
d
j
x
n
r
x
v
f
q
j
v
r
q
d
r
f
o
x
r
q
q
a
o
q
a
a
a
i
i
q
a
a
c
i
a
i
a
a
i
i
a
a
a
q
a
a
i
a
a
a
a
a
a
a
a
c
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
a
...

result:

ok 38338 lines

Test #47:

score: 0
Accepted
time: 49ms
memory: 11400kb

input:

70079 25924
jmrzlervnizyczxaeqzyqnoldtpwuscmjfvpmvlogvsiwuylybdbwlnymbhetnfylcyxqjxycbhtlhcyekdnpamtsjxfocapohuwklmepyeksidnphlwvooqewytaqrdpvscpezpwxmazzrfiwdmzxrdjkbksaoyrgyiruvvqgjzcwbfmdygupyklppwoedrngqmhhmrujbpvjewrwtuvysspqddyrydgcyyndryrxnuzqwfmuyrgjpgjmvdlheopotcqbivuusfaelonvrzbaqtpqszdrxo...

output:

h
d
w
g
e
r
c
z
q
j
h
i
h
g
k
c
i
j
r
g
f
h
s
i
u
g
u
w
v
c
w
a
w
z
k
g
u
u
y
c
u
m
z
c
e
f
d
v
k
e
c
r
w
k
f
m
k
e
m
k
g
z
t
h
i
a
p
h
z
t
f
s
s
i
i
j
q
n
j
v
q
j
z
a
g
w
l
e
n
s
f
n
s
r
i
x
a
s
a
i
u
a
x
j
l
n
e
i
a
d
l
d
i
c
p
u
d
c
d
p
d
l
p
d
u
u
u
p
d
u
l
u
z
d
p
u
u
d
d
p
p
p
p
p
l
l
p
p
p
p
...

result:

ok 25731 lines

Test #48:

score: 0
Accepted
time: 20ms
memory: 9992kb

input:

75360 5789
crmgibmmkfqhatxxiipnruiifitfidtargegegnyjdlhswflnxquutjjsfdrgumubeypnclkcypozonjkfaqajkjlqaqqmebqhfsxtnjduuxurbnntuyvkeqtxugxjsshdneryyihiemomzbmuqedowmijlqxmecvangexarcxwxvnetaamiyakhdabfwffgrsghnrcbauxudyfosbwbzdpcrdfchdjwyllrrxohxqpifgccvctyuvpmipwkzaqyjhpfdmgqalvzkpjvnnqfhndswrmfggude...

output:

r
b
e
g
a
e
t
i
x
t
c
z
r
s
v
f
h
i
p
p
x
x
z
k
h
x
m
n
m
z
x
r
f
k
k
w
u
r
m
s
k
z
q
c
x
b
y
v
y
t
p
t
p
b
k
o
f
o
i
i
u
i
u
b
o
n
q
v
o
l
x
i
l
l
i
m
i
j
l
l
j
b
l
l
j
l
l
j
j
j
j
j
j
l
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
...

result:

ok 5602 lines

Test #49:

score: 0
Accepted
time: 91ms
memory: 11204kb

input:

37753 55914
meafezosoivjbhcmirizhaaoaqqyoqkthafmypvokgtqlzwajesnbqhvdjytopysqowwsnowohlfpwdmlnisffdlyhrnlespplzdlicltciipkrsoicmkyfoggweuvwzwkfdnemsqzicyztptbbsxkzdcyjaofhjnyyrwbldjgkeqnteczxhgexvfomitqasyqumbgewgvrkmjndvnvghiizpymypdxovpckcbkmelwgmzlyqeyteerfzobpttdpmtyushqabmucrwxubkfcvxcfybibcxhl...

output:

h
f
w
o
p
a
n
v
s
w
x
v
i
a
s
o
v
g
i
i
l
o
h
k
j
b
a
k
s
y
a
g
y
s
j
w
b
m
s
y
e
v
s
k
f
w
v
w
i
s
g
i
d
s
s
l
s
l
f
d
v
h
f
d
b
r
b
a
a
d
a
a
a
a
h
h
b
b
b
a
b
r
b
b
b
a
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
b
...

result:

ok 55717 lines

Test #50:

score: 0
Accepted
time: 91ms
memory: 12748kb

input:

69567 45892
jtbndqwzwoxkaqwjsjqnfxksnyafgojnxakzzmufgyttkijgwdajqryovjcdevtldptnylqxwltsjfusbldchkknvsnhautehuybbqiargiuamzlmhksqgvvqxmcrigxcdtmzekqefyzhzantmpgprtdwjjlutcxjyhvmfqpbxfmwuqivnmkwvgvnasqsenqngicbpdbadopjecqbvjvjzshutkxaugzznwyxgzfkvarzhtnjloqrbngirlhdphyghnphoctflqyfizwngnfibtovazrmisd...

output:

m
r
f
k
n
x
h
w
b
b
n
m
o
k
n
g
c
t
m
m
q
s
d
t
g
v
p
j
k
g
y
k
k
m
h
b
n
j
s
h
n
v
o
b
w
g
t
t
a
v
h
k
n
d
v
h
q
p
s
p
e
i
p
y
t
a
z
d
f
k
d
a
t
d
w
r
q
i
u
w
w
v
u
r
a
z
b
r
n
e
j
p
t
u
a
s
a
a
c
z
j
u
o
n
d
p
t
u
r
r
z
z
r
o
j
k
s
r
k
z
v
h
b
f
p
n
t
e
v
u
k
a
n
e
i
d
b
f
l
y
l
p
e
e
g
u
g
s
i
i
...

result:

ok 45848 lines

Test #51:

score: 0
Accepted
time: 123ms
memory: 9984kb

input:

6325 75891
yzyzdojgwkawybfdehnlyfarmabaikrsqoucbtcwnetehihhspmewwrewkdudqjgjrxideyqrbckyayzdizsafyqwjwfpeovejjiohczgczvuqjuiizqbljtcaxqhoikvzdjcuotrfrntyvnplpnjqaqklzwgnquliczfwsjgghiprnxohwzgbqceiyzodmyngaupegvwzyhnwimrbmqxyltnjuzenusssgiyzuqrumrxhlsjaipsuymazferyeuaspjsvqyekksfztwbkjzawbjndupywlwg...

output:

p
f
r
o
h
a
q
b
z
y
e
m
p
p
q
j
f
f
p
e
d
p
q
p
j
j
z
k
g
t
s
f
q
o
d
p
s
j
t
o
q
h
h
f
l
q
n
x
o
u
b
q
d
a
h
d
b
q
a
r
p
q
w
a
d
c
k
z
h
r
p
q
k
a
v
m
z
j
k
t
j
i
p
e
x
d
i
i
a
y
r
g
l
a
p
d
s
x
g
d
e
q
m
m
i
w
g
z
n
i
e
k
e
f
k
h
h
d
u
m
l
o
o
r
l
n
d
l
w
s
n
b
f
l
m
o
y
h
p
s
n
k
q
i
v
j
o
k
p
m
...

result:

ok 75843 lines

Test #52:

score: 0
Accepted
time: 66ms
memory: 10852kb

input:

54282 37511
ahqtwddnbkongdllypaqqzlqkkyokkjzlzicgnpjnvpayilrnsaelrpzhytvfxfcsmwjpukcqkqvypyhjjdthuklgaxajlabikvkqnhuknxowjalmygaiasiwahynhhuzngpfzzgylmsocdqvcnoaasvtgbtqhtspufjokcgxhmadamashnnkzelulchtwsnmyysdjdflcxvzyeuebwbxffswsmscrvommkmhltosfulrfadpyrzkmluahfzkhhsctokwngjkznonkkeqsgwsgmotagsxnqn...

output:

s
d
f
b
v
i
z
h
e
m
k
u
o
r
e
u
j
t
c
w
v
q
c
s
v
i
d
m
y
n
a
d
x
h
r
z
m
t
n
u
m
g
x
n
r
k
d
e
q
s
k
t
u
r
z
q
u
e
v
v
j
t
u
q
y
x
m
b
r
g
d
k
o
a
a
j
e
h
d
b
r
k
w
c
w
o
x
j
s
n
c
p
d
y
n
e
u
d
y
b
l
p
o
m
n
n
o
z
o
u
f
t
d
q
t
z
s
j
j
z
e
a
v
a
b
h
w
b
v
u
d
j
a
s
f
n
i
o
i
g
x
s
x
c
f
z
p
u
y
w
...

result:

ok 37466 lines

Test #53:

score: 0
Accepted
time: 47ms
memory: 8728kb

input:

39808 25800
mfzdkpfijumsejqrbbpbqxmjgzosyjgdbpxqhlfhyyvtskqduhvaksyuxexxkqvmwwaoekvmbdikzbzfsvlbhdvnvgufmjsbbobcsatgaozanikwpvtqlfpwmdmykmqnekfyakqvchptghttkjioygmvbdvqtfkaotfgflrczywzpjshthasmmptibcidcorjvwuvdfjganrqygpkchbvdepjnswpyfzmbptjwfypyvsvsxxphgnisocjysxbbgpppizktmelrysahlmpgyebjnnedndfitm...

output:

b
n
n
t
t
n
m
t
j
a
g
d
s
t
o
b
i
j
c
k
c
w
l
a
f
l
x
j
m
v
p
h
w
u
n
d
b
o
e
v
b
k
y
x
g
v
f
o
b
i
n
f
y
r
r
f
p
t
w
h
b
q
z
o
y
t
k
j
t
f
a
s
a
r
a
d
z
q
n
d
t
i
u
c
w
y
m
r
t
q
i
o
s
u
k
q
e
i
i
y
b
z
j
o
c
s
f
v
i
v
o
p
e
w
v
o
p
s
y
v
n
a
f
o
s
k
i
z
l
u
x
c
b
w
p
s
h
c
o
y
z
g
q
g
y
i
o
u
w
x
...

result:

ok 25755 lines

Test #54:

score: 0
Accepted
time: 199ms
memory: 19316kb

input:

100000 100000
tkhzfyqswobgehuxsnwovdvrxrtlwnsryxpxapvrnvyumtajfltmaydovaqdsatmojwbssktxekxumwqmvcwewwgkkuwiskwsowjsnylwdrgogvnjxdmqdrzpdzphfjlharfkkvrbxznjjrgtirmfcmycdczrhuiukpksremdakhyrfoefjhrvhzgitbyrlagjvihoeuyuiiaznhkthzalnnkjqylnnlgyvxxcvfauzcnsvozxdnfqqsvsigxkdsxdkkbxvgkccaidwjvqyhhtnecemluu...

output:

y
l
y
k
w
n
i
n
i
k
p
b
e
v
d
p
k
o
w
f
e
e
o
k
w
b
a
j
y
w
o
b
z
i
c
d
k
a
k
h
y
p
p
s
v
z
w
k
y
d
h
q
a
z
r
e
a
l
n
c
z
s
f
l
l
d
u
f
e
p
e
c
d
k
p
z
z
g
a
f
r
k
w
o
q
t
o
p
p
w
d
i
i
q
p
u
l
g
t
s
u
w
l
i
z
v
o
x
j
i
f
t
n
m
w
k
b
l
p
j
h
b
b
p
w
o
j
n
r
j
k
r
s
n
j
d
t
e
k
e
n
z
z
r
z
p
m
g
w
v
...

result:

ok 99956 lines

Test #55:

score: 0
Accepted
time: 198ms
memory: 19232kb

input:

100000 100000
rmcwdrchmccoawykupafdjldzadgudffveeqaezlrrzdfjufeedvswubkqtuypxdpnnthazmlkjzrgmhajpgzecrejargpnjnxuhepwvonijvgyvrftueycuhkqnacebdztyflgfctaqihfstjnqftpdfesjdkpgnkvodkdiimmzrksqrwxmcvbwhahnofgqhuwmtkfballfkpffsgethhxxxhbuidcvppaezftckwvchaxhcapzpxyuwcrslpxgshpoxufnzxzdbbuondylahhsyvonsu...

output:

h
k
y
c
w
f
x
j
w
u
z
m
d
k
v
f
v
d
t
s
m
s
g
t
v
j
o
n
o
x
k
a
v
e
w
b
m
e
e
h
o
u
a
h
j
j
o
u
k
z
h
m
u
t
l
k
f
e
f
q
l
r
u
w
d
i
f
z
u
x
s
r
j
i
z
b
l
b
a
a
u
p
h
g
r
j
s
f
q
v
u
d
h
g
h
l
s
d
q
z
f
a
g
p
j
u
x
l
t
z
k
v
x
d
v
x
w
r
t
l
z
a
b
s
a
l
o
z
s
n
c
g
e
r
f
p
w
h
k
c
x
d
a
u
k
d
t
j
z
k
...

result:

ok 99956 lines

Test #56:

score: 0
Accepted
time: 200ms
memory: 19276kb

input:

100000 100000
qxdzgnzpoateifsmszybwpvorblxfrqujrrwkxqftngbuwymkoghnlrtqrwnjvxwlpddlepqhhcjylkkwemrsfaglgbrkcmbnywmosqvyksfyvcjambhveqbkepwnyjzwwdjsdyqnnmtgffbxmpafcsedudsztykihtwiguvhqbzwsjaifuxkraqgraxepfzcnfvluojfydxjmhvpprdmqgbdoyqveogzxefelvzixiuqrdynahbhtwitruwrrfkpojumhmwyvdlrgysjxfgpxpyuiqzkw...

output:

k
t
o
u
s
o
x
f
p
j
k
y
w
f
n
e
v
z
q
r
e
k
i
j
v
c
a
p
e
d
f
h
x
k
y
m
d
v
o
d
b
t
c
a
r
n
p
t
s
z
y
p
a
b
q
a
k
i
e
i
a
d
i
p
j
l
q
j
s
e
p
q
j
e
k
s
j
x
e
i
m
e
u
m
w
n
x
c
n
g
g
s
j
e
a
l
u
e
w
q
s
j
m
a
x
r
v
g
z
z
k
e
o
n
e
v
v
i
t
q
k
k
h
n
u
m
o
u
w
g
u
n
g
c
d
y
t
k
m
o
y
r
p
p
i
n
u
h
a
e
...

result:

ok 99956 lines

Test #57:

score: 0
Accepted
time: 201ms
memory: 19380kb

input:

100000 100000
medciruomdldheqhykyfuoufvnnrpzlgvjsoljgpxhthwmwzaxkvcjxfdtyhldcqqodebiiceurkuzcpybmnnfaenwucdaullxqvxxtgllpngnpjglrgwiwoqimoiquutlsoxswcvqtauedpnqlgbnmewxiqxjooroexazcdfskafdbjegugtbmayiabihrqcxmenvwciucmhpmeoaagbazeeccfvxesfhzovsidhfaeizeofzbscrghwjhyiwtgwekwalpgntacmznyeflfgqotnxcduv...

output:

w
m
k
e
q
k
p
p
s
d
u
i
r
o
y
l
r
z
t
v
l
k
l
p
t
o
q
m
c
e
q
b
t
c
c
c
k
m
x
q
x
l
i
r
x
i
y
a
x
u
i
t
e
j
f
n
s
u
b
y
k
k
v
m
n
a
p
g
f
s
l
f
j
n
p
x
f
l
w
o
c
j
c
x
o
t
h
f
s
t
y
g
h
h
i
p
w
y
d
o
a
q
d
x
e
g
c
e
n
j
w
h
j
q
c
i
z
h
p
f
x
n
b
i
i
c
e
v
q
e
k
k
x
p
x
r
v
t
v
i
p
w
h
l
n
l
c
x
f
x
...

result:

ok 99956 lines

Test #58:

score: 0
Accepted
time: 19ms
memory: 4888kb

input:

2266 13939
zdorzvqywgcpfgwqvcbqegsdmovbvxsyqnsgomlpcfwhovrgeydvvqmlctelpcmgxqosjjunykfkihrnnsghufszolxcopzqcmnzfxruwozinvvirofethnrwdjxobotxhyrmsqjhpvgfvepvtgjxbzipslyxdvxbhuyzzqzfinrakkqpzwciputzvxocojucqqsgseveycqdzaqkkjznmmrbzqwucshktyruhpcrlovqyqzqakgumymzcqlwrfphumjipvqcrnrnczsojaukdwharoimnmja...

output:

v
y
c
p
j
b
c
p
g
v
w
w
b
t
y
p
t
q
m
t
s
p
y
x
n
s
h
c
y
j
t
x
b
p
z
s
q
y
s
f
l
t
k
g
s
p
x
p
m
u
h
c
r
b
l
l
y
c
r
r
q
y
p
x
m
a
k
a
w
w
e
q
i
g
d
o
c
l
c
o
z
f
i
g
h
v
b
m
a
n
m
j
z
h
n
s
h
c
u
d
l
p
k
l
k
a
m
c
q
z
u
v
o
w
h
k
h
d
r
p
m
w
s
h
t
v
n
i
g
w
p
n
d
y
v
g
v
s
p
a
s
q
d
x
i
g
i
y
i
s
...

result:

ok 13890 lines

Test #59:

score: 0
Accepted
time: 79ms
memory: 14036kb

input:

92777 40222
jaqtbebwgqoglrgmvzblcyjufztwplxxgnlwfnjmltisavtovjverilpntelgytfjawtkeebxysyejiedyfpimdzwdtonefkdopgmsjvhzozdxddtvuonkqfidvgitjpkcncttwycvflmdpkamhconciqwqgjgtnlojbzqaetkfoovtvrpwzwddtzalslvskfteznnqjvkmtkotnjmzlmwvqkbdhfeaprykqdfrlogroyqtdxxceyvphkudujlzkupychcvbikrlbniqaxoanosflqouwvjv...

output:

a
f
n
k
j
o
u
y
z
a
e
w
w
e
c
q
s
b
u
p
d
y
d
r
h
k
c
b
b
l
y
v
u
v
h
z
n
z
o
p
n
o
s
z
v
i
n
y
x
l
h
w
t
d
j
i
i
a
z
o
w
v
i
h
l
f
f
d
q
d
b
i
b
h
p
j
g
u
q
a
l
u
x
u
f
w
w
k
g
c
n
c
l
z
b
h
c
f
e
r
l
y
q
s
g
r
o
i
v
q
f
o
g
k
l
c
e
y
j
g
l
p
t
e
f
g
u
f
k
i
d
f
k
q
x
s
j
i
k
v
q
l
r
n
d
y
m
x
c
j
...

result:

ok 40178 lines

Test #60:

score: 0
Accepted
time: 138ms
memory: 13504kb

input:

49709 77709
bggnuihztkjegiagfafpjajgnjqqagzoxmgzsuydteahlnkcitnfzopfioihahbwgwbjzdkmjojkbghixaypbhqgpllmyclnnmezumgjysclfujqtqatikwinajkmdzypqbfdchwuwrmfxrtnewgahqwhifpjxxlrdbiuqaxizagufjkqbdmbjxbmrduvfkrhqqkghwctzghllmverkwjrxnbmewjoxacryvgthcajhxicajelnhzcpxgqghzhtlrqntglrsetkgdkodpnkdxyzjnnkstcwr...

output:

z
g
s
e
l
e
g
e
y
c
y
f
v
o
v
j
b
z
t
q
x
v
o
g
w
b
p
c
x
m
a
r
a
j
z
b
x
s
b
f
p
w
g
n
z
j
s
l
v
i
x
u
a
h
q
i
i
h
w
z
i
w
v
j
e
w
r
r
t
m
h
x
t
l
a
x
i
w
k
b
j
m
y
d
e
f
s
c
o
k
s
g
z
t
t
d
v
l
r
u
n
l
p
g
x
x
h
x
f
z
r
p
n
s
g
e
y
m
n
t
m
k
y
o
b
v
t
i
b
a
i
v
t
e
d
v
o
o
q
q
m
e
d
i
u
d
o
q
i
n
...

result:

ok 77664 lines

Test #61:

score: 0
Accepted
time: 54ms
memory: 11384kb

input:

75956 24114
ufnloylsymqfvpmjbmrgnrvsruzygqtcxgrqhwilthybwfayvtpvxpugyatgdvwushajqtcrwjiexizluipsmsnpscoarhcwuenfekpwokaijhehtsaspoohbbwrrvvptlnmweysiwrzrkbtkkqrzfutsamjahbltvhsqnisizicvoerrohskydjltvwtubqoikfpxovcmfnidqhxrovvkdcrzlmhvnkletyhvwhfxrcvfopxvqmxwbazfbhzonnkovywmcnjavwtmrdekljuntsiylvxoga...

output:

o
r
z
u
d
v
k
g
v
q
j
r
d
p
r
v
l
u
g
b
n
s
p
m
s
a
a
x
r
t
t
o
g
d
q
k
a
u
l
i
z
g
e
n
b
x
y
y
s
k
m
q
w
x
w
u
c
p
j
t
c
r
m
q
u
t
o
p
o
f
e
u
z
d
x
j
r
l
x
c
j
b
y
p
y
g
q
y
c
v
k
a
t
a
k
k
p
p
t
u
p
k
o
c
v
m
i
z
v
t
e
k
z
r
t
p
z
s
z
q
w
z
y
c
r
m
c
x
g
b
p
g
p
t
n
x
r
n
h
o
z
x
a
t
j
o
w
i
q
g
...

result:

ok 24070 lines

Test #62:

score: 0
Accepted
time: 57ms
memory: 7980kb

input:

22973 33947
vtxulpwdxjiaigiziwpygbnsseisccrotkheqjctpbcfndevpwylwoyflmstvmvdtdoefnfzpzwldlmdsinfwxxvymsgvfmkdnneuxylmxiejxbxdrvcvdmmtgotkccwnjrjsgluiasqqvftjgqazscrcunuvcghavtteidlggrkdsxncxmlonrqkitujyaybsyxllnqghcfpvytwblgmyphgogetoejubsqyaprapeltvisliigzbjeyeraszgevctbvdgzkuhlorijwrgjdfyjydkloufg...

output:

j
v
g
o
r
o
d
t
l
b
g
e
g
x
q
p
d
f
a
g
l
n
c
b
i
s
q
g
l
r
r
c
i
d
t
l
k
g
r
y
o
f
x
l
b
r
q
b
a
x
a
y
k
y
k
w
r
c
g
r
i
g
x
o
h
s
o
t
p
f
g
i
n
r
d
x
k
e
t
x
i
i
f
o
j
z
u
p
j
b
o
d
r
l
q
n
w
z
m
h
t
i
h
c
d
x
t
o
u
r
h
f
c
m
a
l
w
z
p
g
q
o
x
b
d
z
k
d
h
b
s
c
c
l
a
s
w
l
o
h
a
g
m
h
m
p
t
z
v
f
...

result:

ok 33901 lines

Test #63:

score: 0
Accepted
time: 73ms
memory: 8540kb

input:

13747 46223
lqyahzbewixqpkzfddafadsnjcwunhfowwtufibdpjvextrkgyvpfnoxzyydmwabayrmesxmsmioaublqczxwbywimjcbbbmqelzwfxkjerujvqnjfwqufwkdtmerrnriqceywifweccuggpxuncgszjobsojwwoztqwdvxyxiohzvkmuqhdguolzfoaybidnletsqcokjdbyjkomtekzikxvmezkngekezeiorvflprmgzdxpzgyjdyshsqowrdbqkbptivlmhscxbcefyeedoimnlhaejq...

output:

s
o
h
d
t
v
p
q
z
v
k
m
z
l
s
c
m
l
l
i
j
c
v
i
j
j
y
p
j
z
b
i
t
y
a
w
e
l
k
l
o
r
z
v
i
b
y
b
k
p
r
q
y
d
n
d
g
l
j
z
u
m
j
w
k
d
b
z
n
k
w
z
j
l
m
r
t
o
a
x
h
k
l
u
c
j
p
k
m
e
a
u
i
o
w
p
s
n
b
x
f
k
m
t
b
z
l
z
z
f
x
s
y
p
h
e
p
j
e
x
v
t
p
a
q
i
s
p
r
i
s
d
w
q
a
q
s
b
g
r
p
k
r
f
d
m
r
i
d
e
...

result:

ok 46176 lines

Test #64:

score: 0
Accepted
time: 19ms
memory: 9692kb

input:

69570 5089
gxecoxqjpmmdawxbcabqpcnbwjrojfewnvxblyrgvdwhvgfspxfvujavnrgksvwvezihdvcymbddxctzixmuaedzmyuidqjwguyicohcnkfsrpcszragspzeleeqergzcldxjsbheuuppksexbiunofzqbgzqpdvnuuqgwgnczopxligeqbpymmfgiwpwgzureppllhizadimmsftgnzysglizsqlbxarldasipmizneikgpjjjgfncxaqnmarilixdvfubtpecmlbnzoxtrxvqculqxpymfw...

output:

k
x
j
h
g
a
b
u
a
l
a
o
r
h
z
r
s
o
c
v
a
a
e
h
a
p
k
n
e
s
u
x
v
v
r
s
g
a
o
d
w
k
t
c
t
c
a
y
w
k
r
i
e
u
c
n
o
z
d
h
p
k
z
u
n
j
t
u
a
f
h
i
n
r
s
v
n
b
p
q
v
s
i
k
q
p
n
p
s
z
m
s
q
o
a
j
v
h
o
a
n
k
i
y
q
x
l
s
y
y
y
q
m
x
s
k
n
w
q
u
k
r
s
w
e
d
g
s
m
c
b
v
l
z
x
p
b
j
e
z
a
t
k
t
k
u
m
u
t
x
...

result:

ok 5045 lines

Test #65:

score: 0
Accepted
time: 116ms
memory: 9628kb

input:

2154 75488
eevgdnnouqnhvzedrnyhdqlhrztnnvmshtpeezscyiasqippzltjvrccdgrnwiwfsogjgpkntmwmzdoiwflipjvsctvpwznnytytyuzfppeubqfqoxkjehfrcogxvfuxmsbazlwnlhovwmdmhvtteelnbocxgxopzhpzdhksmsilhtcvkajizeidaagfqvadmlaiwnwthdrizcgjyuclnyfahggotdztixefazvdhiwibzemylnrbuqrpaigtciursikyqtltiqqorymuikorqudixmdkbdsi...

output:

v
b
o
u
b
y
x
b
g
o
c
v
u
o
f
d
g
g
g
k
a
a
z
z
f
f
c
w
s
f
a
k
s
h
a
q
x
d
v
h
w
s
o
m
s
p
m
d
n
y
z
s
c
g
c
y
x
n
a
d
r
d
v
s
i
t
i
i
b
f
i
o
r
d
g
e
y
x
y
l
j
v
n
v
v
z
o
v
f
g
i
p
i
f
b
q
u
c
k
c
c
q
k
d
g
j
w
y
z
y
y
s
l
o
f
k
z
h
e
m
w
o
j
d
s
i
f
l
x
l
w
s
u
d
l
x
k
q
g
b
x
k
v
s
o
w
d
d
g
s
...

result:

ok 75439 lines

Test #66:

score: 0
Accepted
time: 94ms
memory: 11412kb

input:

42714 54378
xvoublsmbfkpillrjgyvnmuwcgabyagapcswkqnistllwxficqayecpmgyhwfawywytlsvxyjohxtetjhezzwylefllvfvkrthaflhpmxluymytdnfdydcfoqnbgecguyxvqqrnhjncksxdvcmscooaeuirfpfpctrihkflzgdhttwdovthseizeauvwmlrquucpxzjilryttpocjskeagrmfdrkzxetcfniivkezinhijhpkgriqtydduerbawsxpxeknwzmpdakohqfwtydiqiiorrirgl...

output:

x
p
k
d
n
k
g
k
u
u
c
u
u
t
k
u
x
l
s
m
a
n
t
j
x
j
l
m
k
g
t
s
w
p
e
s
i
o
z
b
n
w
x
q
v
m
z
s
f
t
y
l
g
d
w
l
p
p
j
h
x
e
l
i
l
q
x
v
e
i
j
m
s
d
t
a
x
q
l
b
d
t
e
n
a
w
w
x
u
z
f
k
f
f
y
u
u
o
c
d
e
y
e
c
w
f
d
p
b
a
q
g
l
r
c
w
s
e
w
f
o
f
v
e
r
k
t
w
w
w
j
j
b
t
t
d
u
m
l
u
h
u
g
l
w
y
i
h
d
k
...

result:

ok 54333 lines

Test #67:

score: 0
Accepted
time: 106ms
memory: 15584kb

input:

98326 54326
ugosyzoeuebxumcwrntkwjachfxgytrjcxuulzycacmtfqfuiubptazrydcxhrbqyyvrvsejbauxcufpykxssqyvzbeavkphleobtguqlfvvqntgubuxdrtrnvoouyxaanvbeuzvihhtyyhxvukavshgfndquedbhazasuggwlfypzolsqkhmfhvfezifumufdntsonuhvbvecteeakrzywkuimmzkjpglscyvslftirsqztymiqmuieivemfsbngxqqzbriudtbkndszfxozsktiltukbnr...

output:

z
g
x
y
x
c
z
g
c
e
o
l
r
s
z
f
n
a
m
c
w
p
i
j
s
e
g
c
f
d
s
m
q
c
g
e
v
e
u
k
w
i
u
q
a
n
i
o
n
q
s
e
j
a
n
e
p
i
t
z
t
o
e
a
g
d
t
t
i
p
q
w
n
k
y
v
b
f
s
j
e
o
f
t
q
a
m
e
b
x
u
p
o
l
t
k
p
e
w
a
u
w
i
h
f
u
v
i
v
x
h
h
v
h
x
y
o
z
h
e
n
d
m
w
x
e
h
t
n
b
d
r
w
p
y
k
t
x
g
s
t
f
p
v
j
f
w
q
n
j
...

result:

ok 54282 lines

Test #68:

score: 0
Accepted
time: 102ms
memory: 9508kb

input:

4096 71316
lguxybeztgjxufvwvsattuxqmnvpgervvhdriiadxtigpbftyasmllwrydudkqxutbgkarqexzeindiikbfiqrhhhbfneagucsbvigbbqkusnjwrwiqdiofytbfvkltphjflvppqmmplrhrppzohgkpbxxhgtlkjuddybrqcxsqsmpjaxkpwkvcogiujwzrhgjrkoazgllmjcxndwbhgarfcpwqzjhzlchpzmxcztztqbtzlplpeugxopdluvvqjyaskpxgqkborhnrlovlcklzilpmujlbpv...

output:

n
g
p
b
l
a
b
i
b
n
p
k
e
e
u
n
i
q
m
t
i
s
c
b
y
a
z
v
e
l
j
v
k
j
y
f
h
i
r
y
c
r
h
m
c
j
y
p
b
d
b
u
e
i
x
p
x
i
r
a
i
f
r
b
z
o
b
d
f
x
l
h
q
p
a
p
k
g
o
r
b
t
p
i
v
g
e
z
l
s
z
h
h
n
g
m
f
n
t
v
o
q
i
o
w
c
o
g
a
l
j
s
l
i
p
q
e
p
b
g
y
m
a
k
a
t
q
o
z
l
u
q
b
n
k
r
g
e
b
p
v
e
u
h
r
u
n
x
t
k
...

result:

ok 71268 lines

Test #69:

score: 0
Accepted
time: 125ms
memory: 10928kb

input:

21083 73658
tqxudnvqxlfzmolgizkakeovgdoxhrmllhjgdpptvfghcapnlkffotzfpfnbmzilkqnixlgcmpckapuzihgotyujjwmocssclnwjauqwjelldsqvirrijzcxjsnrjowflwxevnbtxovcnbcbgkwiweycbdmhzxrnvydyhatroukgduxwncvnorebstbagpqpruehwevtrjcqlojuxnzqejatlcrzntphcgqzouethrywadibeqxdnblehqvdqemxwosodzlgqscktrinqsnoumffbheqhpep...

output:

a
w
e
j
g
h
s
m
u
q
h
z
j
v
g
a
d
a
p
s
x
v
a
x
t
n
z
d
a
c
i
w
o
e
r
m
f
s
i
o
i
f
y
b
s
m
o
r
y
q
r
b
l
d
v
c
a
q
r
e
o
e
h
v
d
f
y
e
a
m
c
v
l
x
r
p
n
w
a
m
a
b
t
c
f
n
y
k
l
r
e
u
n
w
d
e
n
o
i
t
k
o
e
r
m
j
y
i
e
s
s
p
i
j
o
w
o
n
a
j
w
w
c
r
h
d
g
y
e
j
o
p
o
r
n
r
t
s
i
e
k
a
p
z
v
u
e
z
f
h
...

result:

ok 73612 lines

Test #70:

score: 0
Accepted
time: 86ms
memory: 13488kb

input:

82109 43980
msbgcmzwneworjeijfepiwbeqvoybfqmwukbxntzkognlgqrseqmratwketgsnvoxqbyjxxvyuayyiopfphombstwpydwvsimsshivhglrpmjtnpstasbwxppjwgzhgzfkejhhwynohuvmuejuhsrcyjhgneuzpmezmlmqkoolnswtkgtncuctspvdmnatlbtfyotokhkdxysqvsyspaknmxryixldcqenryxhmyjscmnjvuheyhdzkbhjjgobhwcnphdpdbdfdqqwhxxwracjexrwlenrbd...

output:

w
n
c
u
w
w
h
j
w
z
e
r
r
e
h
o
u
f
c
l
s
m
n
p
q
r
d
i
x
t
w
l
h
w
e
d
u
v
b
c
h
c
p
j
g
l
n
s
q
b
e
m
e
w
l
t
q
n
a
i
p
y
w
y
a
u
s
q
x
m
m
n
s
u
p
s
k
s
m
h
y
p
f
v
q
c
b
u
x
j
v
x
l
e
j
a
q
f
y
j
w
r
m
n
c
w
i
f
t
q
q
w
n
h
m
l
q
r
z
d
k
s
t
c
x
n
t
z
h
b
n
w
v
k
a
m
o
z
w
z
i
y
b
k
e
t
o
s
q
y
...

result:

ok 43936 lines

Test #71:

score: 0
Accepted
time: 32ms
memory: 7972kb

input:

39366 16622
zsqjsqxxbwyizdedcgdvxrbcclhsswsihauguuvhozqtqcpxtkhwxvstnnfggvteuglqtmkrsekffazlylpkkdqozxbnuscxpjknrywhehlkplnircssolcgnsckvuqxjoyphlixkotlbitckyoowtzaxpglwwbiehbtmfgfsgguftiopikfxagfqniendjkvbsjmbwknyuotlwysgsssdlxktgbaqwggqohzzekmxsqewfpcdxgqnewrudbcnjccmydjdxgskuihehhsxkmuobqhbjjepnp...

output:

a
x
y
c
d
k
o
q
l
f
o
a
t
y
g
m
f
e
f
l
p
g
m
z
b
r
h
y
v
d
m
z
a
w
n
d
s
g
b
x
w
e
z
y
b
b
k
p
y
u
l
s
n
y
s
r
p
v
u
p
v
d
x
y
a
e
m
q
b
f
g
b
p
s
o
h
c
c
p
u
z
z
v
s
z
l
b
o
l
g
k
j
d
c
k
o
n
n
d
y
e
t
m
h
x
c
b
z
h
s
o
y
k
t
f
j
d
f
n
m
w
i
a
q
e
s
f
l
o
u
v
x
u
v
i
l
m
u
a
i
j
q
q
m
g
t
w
s
g
x
...

result:

ok 16577 lines

Test #72:

score: 0
Accepted
time: 139ms
memory: 15408kb

input:

74389 73459
gfrckxveqqavdoalgpqcyypfazrqskuxzvyzewussiefmpfjtvrlggtpzxpdwhxhxvstgobsddpptozwlufxjpzojxakkqlycyrdrdcfqemfiuzqdhbscxqbuwcvioouptwghctwcvkhvugvrblpcvphzjkdjexcpargfqciqyavafvlotzbdlejowzzvyjovexdqyyakwecmpgdfquuuqkftjvacidxcvpufjaqeuxubtpwumqmpwklarncucxshhftqaddakwxvouiabckgidwoarvvuvt...

output:

r
i
w
t
q
i
q
g
n
r
f
b
m
h
t
w
r
l
z
x
r
a
n
z
s
l
h
c
b
x
x
k
a
j
j
l
i
e
f
y
u
m
a
t
z
t
t
f
j
q
o
t
h
a
w
l
s
a
k
m
v
p
w
v
n
t
k
f
g
x
j
x
h
p
b
d
n
s
l
j
k
m
t
l
s
f
g
v
z
u
d
i
h
d
f
d
b
d
q
p
v
s
y
m
x
h
u
n
x
k
w
x
g
k
i
p
s
m
b
n
s
f
w
b
t
e
u
b
g
r
u
a
z
v
f
f
m
u
n
z
g
s
c
q
a
k
e
q
y
r
...

result:

ok 73415 lines

Test #73:

score: 0
Accepted
time: 112ms
memory: 12124kb

input:

46520 61209
stxwqxbyehmtqkcwzpvohjjwlbvttcuheqetlwajqmyycplpbgzczuqtfjdxxdaymvxnbvjgvgselshafkzbjvonxowdkdbbihkxkktoxwmqwevgsacvsfmgvlqyrnpunmeonjugjzekfiejltfzjplxypzttkfbidfdvfhfjrdqfkjpspjbrwjgnjgleviyiilmeurjupwiaprzyzxlqnhgaggexxdwhxiygsfanmeblnwnrgyuszjwbeeqrwwbdfsoethbtpekpqfqtpzvwhcauauwkows...

output:

i
k
e
w
v
g
v
y
k
q
j
u
k
z
h
d
z
n
f
v
w
r
n
p
a
x
q
v
g
b
i
p
s
t
r
g
c
w
m
a
c
p
l
c
o
p
j
j
u
s
c
q
x
m
l
b
s
b
g
w
e
n
e
q
x
q
a
k
j
t
y
e
k
j
s
k
o
p
n
f
j
v
t
j
i
y
r
b
t
q
r
c
c
v
z
q
v
s
x
v
l
e
w
r
v
k
p
h
g
m
r
n
m
n
k
u
v
y
g
w
g
m
b
m
o
n
i
o
t
v
w
r
t
a
e
i
r
y
g
q
r
b
i
r
w
m
o
f
q
f
...

result:

ok 61164 lines

Test #74:

score: 0
Accepted
time: 50ms
memory: 6984kb

input:

9722 33227
tvkboenuogyfiqwgeqmhgpumyjdtugcjyirsoaxzedxtkzmvbcixunmispwfyvwigvmnjuywedhpwahbvhjseynznvzgxzizwhltloxewbszrbdijweennpsaqijqvbtpzacduuujyxqdhjnowmhwoqakajwvuutaxniwapskcruwbftukqwczeaohjirdtkcegybmrxskxhhshfsaqpwnurzmpdhqbrqdesbbapmfyyezgwmrokdmaztvtvapzheewvybzwmvrtrqyqwsrrswhcfzydleqkf...

output:

e
y
w
u
j
f
i
o
a
q
d
h
b
v
j
q
s
f
w
f
g
b
d
h
y
l
x
u
p
o
r
o
l
f
h
r
x
i
o
u
l
u
x
m
n
t
t
t
p
d
b
b
y
d
j
f
e
i
v
t
d
r
t
f
l
j
h
w
q
i
q
g
e
m
x
d
e
e
o
m
i
d
r
f
t
p
m
c
v
n
c
u
k
e
v
s
g
r
q
j
u
a
l
h
x
q
h
l
r
d
e
i
q
c
w
z
s
i
s
f
i
o
p
f
r
k
h
q
h
h
k
m
g
a
n
r
d
v
a
f
o
o
s
e
r
o
a
d
m
v
...

result:

ok 33180 lines

Test #75:

score: 0
Accepted
time: 316ms
memory: 19240kb

input:

29400 170561
cnttawxqrdmhrtsnvrybfrcaovlektdwnvjzbqipnfuoizojvgmyaihzquldbrxznophhzohsmsqdprxugtxegjdiyknfikzmyloypziggxwlwjoipbuxyvjlwtgnqvetqaogkusatdipbihskgsniojixpfsjdbvlggrthzattamzisdtytrlqyqryyfhksbeswencrlztwhedhcehjucmewfqvnvnfnhbevtivivyecupywjwblzjrnhrmdtfaxhtxjenvsxnqemgexbnvjcvkbpzvfmc...

output:

r
i
t
x
v
u
x
t
s
j
e
q
r
s
s
f
h
a
d
h
y
s
h
u
d
s
l
e
j
d
r
x
j
y
k
c
c
b
o
g
w
u
t
n
f
f
w
q
m
y
z
t
j
t
p
e
x
q
y
u
h
y
j
h
w
o
u
y
w
h
y
i
y
j
y
w
m
j
j
o
s
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
j
...

result:

ok 170361 lines

Test #76:

score: 0
Accepted
time: 358ms
memory: 31384kb

input:

174072 181834
qhnszcwnxqgmtxwyglvvlwcftaursdhdqfhpyrhpjpzevbngfnjpdeerjelgirbbxtiljhitejgbegsznxorvyovtdkddhlnovizvjxrivffmycwfoyikykzzzxsfqzfvdzhyvaeixrqqhjulhfaovmiwyeaavkrwmxfnfaqybdyyunbyrrndmsbvusskbmebejmiwdooayoxdkhizlbwicrzsxjwzpefasxbtviomlaachuxjvpyviikqtibumlplgykfiocjyurnmcsmivvhurahopgx...

output:

b
r
x
a
c
u
z
a
n
e
e
g
d
n
w
t
o
b
j
s
g
z
t
p
y
w
w
c
w
t
o
y
t
o
r
l
p
e
o
u
g
e
r
o
x
i
b
x
z
y
g
i
s
s
k
l
e
n
n
b
o
m
t
k
u
m
f
m
d
c
p
m
u
v
f
c
f
m
f
u
u
f
f
u
f
f
f
f
f
f
f
f
f
m
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
u
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
f
...

result:

ok 181658 lines

Test #77:

score: 0
Accepted
time: 336ms
memory: 23816kb

input:

81616 172688
wgbmxozrwbiernqwhsyeadmnbyuggifryjqlebkxyieewqlmurfacdbtfqsfjwzuhbpcbauhynmlybtnhtwhblklpsnxqxqvyiontiqfwnpwyqtktechrwfsafarkkoupvorbkkpdohymulvszqqmsrvismavpguxcncpktunoxmxsnlujrighzwgnkpictbnqyuzpfixtwypjxyhguweenvhjapclcnsmheblodwjitmfsxheorlsrmvirdgvvegmrynondmyguixldiynzymdmqvjccte...

output:

r
y
k
t
i
s
e
m
f
m
a
v
e
g
l
r
b
y
q
c
u
a
o
w
z
b
b
v
s
w
j
q
u
p
n
j
f
a
a
m
x
o
n
o
h
k
u
h
q
o
w
g
e
n
z
n
o
n
h
o
o
n
n
o
n
o
h
o
o
o
e
o
n
o
o
o
o
o
h
e
o
z
o
o
o
o
o
o
o
o
o
o
o
n
o
z
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
...

result:

ok 172510 lines

Test #78:

score: 0
Accepted
time: 341ms
memory: 19252kb

input:

16379 184095
wfjebdnpsonqfckfsxteujqtpfhglhckbednxzdxmmuxivwotmyascnjllxrxwlrziecipmhemxbbdzhigzdcmyophfbehzfqsrexmxzqgjctkhptjqmqgabmgjtdgmdrepriufufvkulsclpixumwgzmyogbtdslcnxslghrzddfvmhsiizhowurgbvwtlhavhbfeoqoncbrldiypvfmrgsdkxtyahnpxaphgindhtjtktgpadpvnjimyszwyhhoxnpsrdsqxtvvfsjfapjvudwuzytyik...

output:

e
g
t
n
t
b
x
f
w
q
z
x
w
l
g
l
i
r
y
t
x
y
r
a
y
m
o
w
q
x
h
y
z
l
d
x
i
t
e
x
k
c
c
h
u
o
o
c
o
f
t
o
o
o
o
o
o
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
c
...

result:

ok 183900 lines

Test #79:

score: 0
Accepted
time: 442ms
memory: 34820kb

input:

200000 200000
wohpnluupvrlmjxujlwiqubqwwltyiddukcduvgsphcbuilnhyzvhfejqmzstnzwctbmexemolubngfcyklrfhpgwrzqmrbikqodgsqlcgcnvkxcubfjqhcxoqbunnvfjkshnsntgepdacuvrtnukwitwrpaowjsbjsiatifuycpihdnhbwtbvdgbhrpjubqdgaxccihbfpclhzeyvuorvbiaqjxardzyzqtlfyyfdjsheqbuumvjmkjgbxmmvonchuxbamsyibuxqvjkcberltddiulmh...

output:

z
k
m
u
a
o
f
b
z
p
f
d
t
u
b
h
r
u
j
h
u
u
b
s
s
c
v
p
p
b
c
q
m
u
a
k
s
e
t
b
c
z
a
n
y
w
c
j
k
l
y
l
l
r
m
s
n
a
m
j
a
e
m
n
t
v
o
u
t
e
a
t
k
j
p
l
f
r
k
o
o
p
t
p
t
j
p
l
n
x
n
u
m
q
a
l
u
n
l
a
k
j
l
l
u
u
l
l
u
u
u
u
u
u
u
u
u
u
l
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
l
u
u
u
u
u
u
u
u
u
u
u
u
u
u
u
...

result:

ok 199818 lines

Test #80:

score: 0
Accepted
time: 431ms
memory: 35120kb

input:

200000 200000
phluhbfvljrhsldedyijornsaxqdcrpkyvkidvyciofeaktmsgyxerqbtciaionqffzrdxcyluidcxzribdoqeifysvfuapojwwcgjhkncraouvxfvlzxegeitcckctfmmmmutmqdmlmxsyweqgvutqhqsfrqqoewwmtqfoiiiedsuthigprahvccbhydbcdtjczipyaxpvltnfudqdbkccmaxmsphpkqrtbqqibxwgpkeiliolxlrhmsidhvjdkmqlcoumjjxnqllsnjmwibkdhhymxgu...

output:

b
z
b
d
e
h
t
q
w
o
v
x
p
m
t
q
x
o
m
x
h
x
o
v
q
w
m
h
o
r
u
k
z
k
r
q
i
j
d
q
x
j
c
l
e
y
s
b
x
h
e
m
u
z
s
a
d
c
c
l
v
f
c
i
h
z
z
z
z
z
z
z
z
p
z
z
z
z
c
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
c
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
z
...

result:

ok 199818 lines

Test #81:

score: 0
Accepted
time: 417ms
memory: 35044kb

input:

200000 200000
bkfthljgwizmopibwflzrpbpawezubqxffjvkjhziwqozsxpyikwrxjkzuuuctlyuzewkzoxefvedwqhpohwtgilnzlgqztotihabmxrkaoftpwukjwejpxaegtihmrjojfknuzeuzporthkccdumclfyoslcuutkysmqujtolkqghczavsrefflrnuopiiuwmossdztaowxqoqkpurdcoqbcfzffhtzmgdymqcqqrcraijmtqexwcqxxnuqydbwfdwfzphlhckgfuvmsekityfepdcksq...

output:

v
x
m
i
k
b
h
g
c
q
r
m
o
r
u
t
l
g
c
y
q
a
c
j
n
a
s
h
x
f
r
z
w
x
b
a
c
x
i
s
y
m
w
n
m
q
m
p
j
m
d
m
m
u
n
p
a
p
z
n
q
n
t
r
w
y
h
x
u
u
k
u
n
m
p
p
p
z
w
z
x
r
w
i
m
u
g
g
g
p
y
f
y
n
m
n
h
f
m
f
f
h
i
n
m
n
h
h
h
h
m
h
h
h
h
h
m
h
h
h
h
h
i
h
h
h
n
h
h
h
h
h
h
h
h
h
h
h
h
h
m
h
h
h
h
h
h
h
h
h
...

result:

ok 199816 lines

Test #82:

score: 0
Accepted
time: 429ms
memory: 34776kb

input:

200000 200000
grmbdlguwvxnuoqtorzdckokfiswywhffyvydwxgkhpfmyekklhcprveoqwgdrjzwkozksdglnkyrjcqboaspnecneoihenkujpasgkcovvggelecfmketueqgmeomgbrqifqenoomxxgrvmkiecpbbnhunftulfakvzfswgklykqukdtytpahkdflizgtqwhgvkibeakqwihgggvlghsbopwxhcgzcleulmbwcotwdbucgxjdnjshvhgcpmbexnissfpwpvjuztfonuexrcjynscdedkk...

output:

x
u
d
l
f
h
i
n
g
v
r
n
t
v
k
l
w
t
q
h
u
n
q
y
o
o
s
a
k
g
u
f
a
k
j
s
x
q
o
i
f
v
c
s
j
s
x
g
e
h
v
n
x
y
c
i
m
q
e
a
p
c
a
n
h
h
k
v
c
s
t
q
d
t
d
n
u
q
i
j
y
m
x
a
a
n
k
n
c
q
v
e
y
t
h
z
r
j
r
p
p
n
q
p
q
n
t
j
l
t
y
g
b
t
q
y
t
t
t
q
t
b
v
n
q
q
o
t
t
p
q
d
t
n
n
q
t
n
n
t
t
t
t
t
t
q
t
t
t
t
...

result:

ok 199807 lines

Test #83:

score: 0
Accepted
time: 196ms
memory: 20548kb

input:

114920 100279
twcesavagjsueprpqifatboebeafipipbggnhnrimjkrqggcfpwdagoiojnneayphzyidiusjfrnzttoujupvvaqajwnzvcdgqhzqiildybbueahaxwthxyjquxvnjfydbvdwxeabkzuoyyzpqqvuandbynqterahvzepuzwtywvmutldywwonkblofmaqxsjcsnuagzahtksknromwyqnqypodrtjzncxckmokshntynchdhehaqrclddotgcsctkzwcagjzhvuttddauylkrtuydhfxk...

output:

z
w
r
l
q
g
u
n
c
q
z
p
n
n
k
y
y
p
w
y
s
s
m
r
v
r
d
q
z
s
k
r
q
g
x
f
l
d
j
x
a
g
q
i
o
l
u
i
q
l
t
k
e
l
z
b
j
i
h
h
c
n
a
q
k
b
k
t
m
k
m
a
m
p
f
w
r
i
a
x
f
v
o
p
o
g
e
e
j
x
a
n
t
y
l
e
s
v
x
q
k
a
y
j
i
n
n
l
v
n
b
l
c
b
w
x
f
r
q
n
q
j
y
z
u
q
l
d
h
z
h
u
b
w
j
h
w
p
x
l
p
i
y
l
s
q
c
f
l
s
...

result:

ok 100236 lines

Test #84:

score: 0
Accepted
time: 342ms
memory: 30668kb

input:

189551 156600
zxhivahlcoackrhvleybaqvxbgxojfrnhiwmixdmtqjzolgiqpxtbfhfyczuxsglbsialubnkrqdgwuoxepfpueusnyxucidbqrsrhjhnvlzdfynuaxalacmoapbceyespfhfunrmjmektcjlwtzvdrvrqnlkmzvqtjkyzccqpceijbynhapaletyhwlhwpybznxfrhuccsjhvbifyczrkqlyvnnlxmrbkcizehexiaacpoygyeqizwpfftozftdqkanhoecazbhfoakxqpqjsaxkctelx...

output:

o
c
k
e
c
e
u
a
u
f
j
p
c
w
g
m
u
i
k
e
g
u
k
r
s
m
r
z
p
d
k
k
s
d
h
r
p
e
e
w
h
v
s
s
t
h
w
m
x
s
o
z
u
y
z
j
m
c
c
w
w
t
q
r
g
d
g
b
n
g
k
j
i
r
d
m
p
c
i
q
n
f
p
y
e
n
e
b
t
k
j
y
e
v
o
o
v
g
a
n
o
n
q
i
m
m
p
i
a
t
z
f
d
e
t
t
r
u
t
s
z
v
i
z
h
f
x
d
g
i
m
b
d
h
i
x
m
f
h
a
s
h
s
v
d
o
r
s
d
u
...

result:

ok 156557 lines

Test #85:

score: 0
Accepted
time: 368ms
memory: 23996kb

input:

66124 190996
lnrmpfcedyklfypfyqrvqpyxzenwtyrskfwrwqspyjczvudrlbsrjlyjinhxihassbxuaentvgswfivtopakefdjzmmrvtxeiradsofdrpepstwcqcdssqwrfrgtfumopfhwdzcflngazkanubqibzcwwmspiooczjtbpilebxqcjxbpprdwtpioozogfptyulwaojtpkdfzbyzpgrivkkugmmzfymaaykesfhrnqvveysemqwtcnhuwoqftuhrxtzzdkcaivcsbztokslwjvhbeomquowy...

output:

v
z
w
x
a
u
a
w
l
u
o
z
x
o
n
t
g
p
u
a
e
b
p
b
f
w
g
w
m
a
q
f
e
u
n
p
u
g
m
o
d
f
v
r
h
y
q
o
s
s
c
y
t
l
p
a
a
b
x
v
o
y
t
n
z
r
c
n
l
y
m
c
e
p
l
z
o
v
l
r
b
g
m
n
t
v
t
z
y
m
k
i
y
d
g
b
j
e
d
x
q
x
h
v
r
q
p
y
x
u
a
m
g
i
t
b
r
q
u
u
b
k
r
j
i
j
p
a
x
a
s
j
z
s
j
e
z
h
p
o
z
s
h
v
k
e
w
n
n
q
...

result:

ok 190952 lines

Test #86:

score: 0
Accepted
time: 301ms
memory: 25412kb

input:

137959 141015
glzgnyonsrgtoozjxtcrurbdecwskdxtadutnhqovfdxrdypsrthazjtqqnovprwedyygmdzzhhprprhyddvsficjugtvixzybpzjjqqgnmgtgryavueajdluguydokehcrwlkshcguwqtxosctibfxbolfgktfnucmkrqdnpghagwitgxjdkvnvupgctcctmnktizpqhifhrazsmwjkkkiavusxtsoyjfxywrrwyhmdlsmnbrclswdfitqaljdyrnpuoazeebuiawvgbvmbtrfrgyxguh...

output:

q
n
t
e
c
e
h
t
n
u
v
l
b
c
b
d
h
u
t
q
h
m
u
i
m
f
k
t
i
l
s
e
h
y
c
l
q
c
g
o
o
q
f
x
v
t
z
r
r
z
s
w
t
e
m
i
v
e
f
d
f
n
a
v
v
d
b
r
a
i
e
y
d
q
l
e
n
b
u
d
d
e
w
h
h
c
s
f
x
m
p
d
g
w
d
h
o
u
p
j
i
z
x
v
o
b
d
j
t
r
k
r
y
l
l
v
z
f
t
a
r
c
o
r
a
l
u
a
v
l
y
w
g
o
y
d
y
m
l
h
c
u
c
z
t
c
e
a
p
o
...

result:

ok 140972 lines

Test #87:

score: 0
Accepted
time: 449ms
memory: 34880kb

input:

200000 200000
vvvhaodzttucudodkjngkpvscdldzibclioybxhgytclqfeqjxtsvgutjacdlmyohykofwmduqaoaqtvuvclhqntywtcxusaldahydvrxqjhteoiqhsthtvlkfgmxrxouvldntghsyavziegzwqyygvxmcxsgvgmwuspmszpkdwskftvnkechkfankhjyuotmasizkapqjgzpbzeomubiisilvctgucccoeojqqkrzmkdjzerdtyvjdviwhwfzwrpjevstpmwprufvqqfnvzuxonuhgxjt...

output:

m
p
f
u
h
q
t
u
h
m
k
e
c
o
b
i
x
x
n
w
b
g
e
k
n
j
y
d
i
q
r
o
l
z
e
s
b
f
z
s
y
h
d
k
e
c
u
q
v
v
f
c
a
y
c
g
v
p
x
l
e
c
x
y
n
e
z
e
a
l
v
u
v
n
g
j
b
z
o
p
s
a
o
u
y
j
v
w
j
w
v
n
h
t
u
y
z
i
o
h
d
x
j
x
f
j
r
i
l
w
l
j
i
r
y
d
n
o
t
p
g
o
p
f
h
p
c
h
c
w
f
f
k
y
i
n
a
n
b
e
h
r
u
s
l
q
s
j
v
q
...

result:

ok 199957 lines

Test #88:

score: 0
Accepted
time: 439ms
memory: 34804kb

input:

200000 200000
yrabkxhxjjeyvjkfjrvwedwhpfjqqzubtjtooqmqukyfuidlokcylrhwcwtggjqfopjficgrwenrobwpgfiooktdinzonungvqytordndsgrqeseljkcwrgljeaqosgtyfxibssmpwmmxfxiezceulbzabbxykybbcmssqaxlmfnpnywajvtnyicuovtrtkpeteaigisnjhceoqgundhygyqugietkqinorhlfwflwairyqtfgrilxacgzdezumvijmckckowhsxhthrepvhxxtqhdcava...

output:

f
l
c
w
w
q
n
e
v
k
s
d
f
d
x
m
r
y
w
e
e
f
e
s
q
e
g
b
g
k
v
e
s
f
x
s
n
e
y
g
z
x
e
g
l
q
d
z
n
y
a
h
y
b
f
p
h
q
i
z
h
r
a
q
f
s
b
k
y
r
d
i
f
f
g
a
m
q
r
w
c
a
h
u
l
i
u
i
n
v
u
j
o
z
d
x
o
c
d
n
g
x
b
m
j
y
c
y
o
p
t
u
u
e
h
c
y
r
i
u
o
v
q
r
j
u
n
l
e
b
i
v
n
j
a
m
p
n
w
q
b
z
x
x
k
m
f
m
v
p
...

result:

ok 199957 lines

Test #89:

score: 0
Accepted
time: 430ms
memory: 34808kb

input:

200000 200000
kcmfcpgeczhvojumlntrkjzaexwujzewisraoatslhwqiolryrddpuvrutuwwupexmxmwjdmmzmhxaiwliwlavxefkknhuopnwqyrqbgagybhkkgmzmwfnstagkutirfwkhpsfxeovdducmdidfqvcxzudzwinxzxhqotlpcsbrreitsfpjyobrbzkpyzgkuhykodkdpxkdloutkhcqcyatmefmbvrdjxqwsimmydklbgrmixssdcwfdbtokneqiubllnftcaynnkegvjqjywihumplidu...

output:

o
j
b
v
l
w
f
q
j
o
p
k
w
v
t
r
o
s
p
u
y
t
v
f
z
a
v
c
y
k
n
o
z
y
y
r
d
x
c
u
u
n
s
n
i
m
r
q
u
l
a
k
d
f
y
e
d
e
v
y
h
d
z
o
m
m
p
z
o
d
w
p
i
e
k
r
j
e
b
a
u
z
q
o
p
u
h
x
m
s
d
i
m
v
f
f
o
g
t
z
q
g
h
g
a
j
u
b
v
q
e
o
l
g
a
f
x
p
u
v
l
t
q
i
t
n
p
z
p
j
h
c
t
b
f
k
x
v
y
v
a
o
e
h
k
e
o
c
z
q
...

result:

ok 199957 lines

Test #90:

score: 0
Accepted
time: 440ms
memory: 34904kb

input:

200000 200000
pesvdqdzkjnxpozvzgsafpicmadnvjrwbsidhecpvxklxopbfufwqfeopuxvfvhfxmfkldebwcjirakwguubdohpfbeonfadmmzodtcbsjuqebtpmsyykahhxylcrntkpfvopllxmvcczopxbfvsjnvqljdqmmyaiyasgqhmcwzuqsokulexseuikspsstgdnrhxpauyzaasyogbmyzukgvafoanhzaixsexmytdwhlpgeqwtteoiwyreohyscgbhvpvpapjeqeatsnqrbwzxjfaowjfdu...

output:

m
e
b
f
y
n
i
m
q
j
h
a
p
l
f
x
g
p
i
h
g
i
b
l
y
l
u
u
c
i
l
q
h
a
h
l
n
w
y
t
d
j
q
r
g
f
l
i
q
f
m
j
u
b
y
e
g
f
b
o
o
p
e
i
y
g
i
s
k
d
x
h
k
n
u
c
d
g
p
n
r
w
w
y
i
q
y
y
v
n
u
b
d
h
g
u
x
e
w
f
u
n
w
r
d
s
o
u
c
o
s
x
k
w
r
t
v
v
p
t
d
n
l
b
x
y
t
b
f
x
w
r
n
k
g
d
p
k
d
j
x
m
q
m
r
o
m
l
z
h
...

result:

ok 199957 lines

Test #91:

score: 0
Accepted
time: 75ms
memory: 7496kb

input:

328 47760
xgcpgfhahxmjeavpockznvpwabmwpdrvebmucgynquaziehswyelagkbfbldtgkiupymcjtkzricvmdeemcptkficzeekhjuaypmtjygqhhhwmbargqmzbnrxcnaqnaeqzsggxbhwgievydrckjbmsdwibxtbjsrthwmlzhfisjmftpumgyrujyuzmkizgxzgdhpancvkfinkrtlggyggvihonrzjzfrfilyufsatzzndwqywezdmnxodezqwfjeizrvucebcacnsopisqzplwhtqqvvphbzng...

output:

a
i
p
w
w
b
v
i
y
h
b
y
j
r
y
l
z
r
h
h
g
h
g
g
w
g
c
v
x
k
g
h
v
h
q
r
z
d
w
w
v
d
j
y
m
w
s
h
g
b
r
h
k
j
u
v
m
v
l
a
z
h
m
f
w
f
e
f
g
h
w
g
v
g
b
y
y
g
k
b
d
h
v
r
g
p
i
j
w
g
e
g
m
x
h
i
g
b
h
g
w
h
v
w
d
g
y
d
v
h
e
j
j
h
x
h
h
x
i
h
g
h
f
w
h
w
w
b
x
g
g
g
x
c
w
e
h
x
h
i
w
a
a
x
w
x
h
h
h
q
...

result:

ok 45436 lines

Test #92:

score: 0
Accepted
time: 74ms
memory: 13852kb

input:

90707 37902
natywlnbascnbqpffzpwmpxbgxrbczpuxzfyfvcdbrrefkkwbrwmnqyozpcmqlfceiaiaddgtspcgenswxrvfbbsqhkaibtgewbeugsydbydmjvgoyemvoizaktablkuxcpkankqxusnuezdyjpxszwmradrhbtvqsldjiqbxluigcvqlisgyuycxiygztjhvfqdjocodiifctcobusmwarecaetiwkzgeqoqxjniecbesqoyodzkhxximbywqabztqkaechgcfpcymphgyjgltpixiacbth...

output:

u
q
m
o
a
i
q
e
t
x
j
o
r
h
z
s
h
o
m
g
z
x
q
k
v
k
b
q
v
y
p
x
e
r
k
i
f
k
e
i
v
y
m
c
p
z
d
l
n
j
j
y
e
k
l
z
k
q
g
d
t
w
r
q
o
v
s
h
s
q
g
m
j
q
c
s
g
q
p
h
q
y
y
o
n
k
n
d
p
x
m
k
t
v
b
h
l
t
k
s
z
z
f
w
j
z
h
z
l
b
u
r
b
b
n
d
o
d
t
x
w
u
z
y
c
m
v
l
e
o
x
r
i
m
w
k
h
a
n
b
j
c
s
h
s
p
t
s
t
c
...

result:

ok 35903 lines

Test #93:

score: 0
Accepted
time: 230ms
memory: 22992kb

input:

132781 114820
emegxvcjzocqrvzsushlpwtbubjebhmbopqqhqrjkykggbljuxbmyfddrpbwnowjetybrhvdelzxondfepdsyxdtdaytouhitmxlncujdijopekajymukinbvcdgegjqzdhqpfllrigzizenvbuhtwywzlcryvkduewiiphucbrlagxtofryjubtvratqqpcmcjeqkupyrvsfopssxgidyrbjmbsbdsfdzufmywrddsvjdhikojcpghjkjxcphabjddogbkpxrzpbphwbocivaluiidtnb...

output:

l
e
s
m
o
m
l
z
l
e
q
m
p
e
y
g
p
g
l
t
j
g
j
o
h
p
n
j
n
o
c
n
c
x
z
j
e
q
m
j
l
x
f
q
n
k
z
c
m
y
z
f
h
y
e
l
w
r
d
j
z
p
m
h
l
h
r
h
y
q
z
h
k
e
c
d
l
v
w
p
j
v
u
m
u
e
k
q
j
i
k
v
z
a
i
z
w
j
y
n
j
m
c
i
l
c
k
q
y
n
t
e
j
u
t
f
j
d
f
s
b
i
h
g
j
j
i
j
x
g
k
i
u
i
h
z
t
d
i
l
j
j
n
j
e
g
d
i
o
i
...

result:

ok 112236 lines

Test #94:

score: 0
Accepted
time: 222ms
memory: 17580kb

input:

61990 114247
evemwmiibshtrxcezoeoyuosuemqknxhrrwseavrftuldawvnxdzrgnobqvhdlqzdtbixwehzmcqmbaolyqybxjgtougcrfrsealqofksysfggyvbvapcfihdlctmbvhowhgqylqvmdkzhfsizdvzkvqykaoyteshbonhgkouceqfhcpdcfkkkisuvgubotmssmspvashgbpfwlkabhojmcxffpryoqccjnutumbnsuqgrgyulplstxzgzneoawgsipnypaywuyybjmtvspjurbboyvenqq...

output:

f
d
x
c
p
m
h
y
z
q
g
u
f
l
b
q
o
n
r
d
k
x
h
q
i
m
l
w
b
r
x
m
q
y
z
d
t
s
a
h
g
q
q
y
m
p
d
d
e
b
z
q
x
f
b
r
z
l
n
l
f
k
h
m
y
q
i
c
b
k
v
k
t
r
d
e
l
s
j
m
j
t
m
f
i
l
c
e
v
f
j
z
g
j
w
q
b
b
p
j
o
m
o
v
z
j
g
b
j
h
k
k
z
w
v
j
e
p
p
a
j
j
n
l
i
x
v
s
t
q
o
i
x
n
g
f
l
z
w
g
p
n
e
w
y
k
a
r
u
t
...

result:

ok 112193 lines

Test #95:

score: 0
Accepted
time: 421ms
memory: 34996kb

input:

200000 200000
glcosndlicjllxrxxqwdkidvaaljkznnqbmlnzukppqjpbpkxgqaqnsjcsvrjaxqyccbsneamlxzpqieuqbdnxqzuybqqvpjoeguigmnktrvvdmszjmqhweqxpljxuhfreiogxptaaznxhkxyqjrrismndfpthgumetsnmwvswcazubtbfgpbxldihrmzmmkanwkvpanpveoizltziekfksiocfglzevjvttoqsxnqzkpmrtqobxscbulquumadbxpolapuhgefpmqtnmafhfiasyceaph...

output:

g
e
c
q
t
d
k
i
p
h
i
q
q
i
p
s
m
n
i
w
v
k
t
o
i
t
w
d
m
k
c
p
s
h
h
j
w
v
o
h
o
f
r
k
h
u
b
r
q
z
j
j
u
s
k
e
b
h
k
m
o
d
n
a
b
m
u
o
b
l
w
d
d
x
y
t
m
o
z
f
r
q
l
g
a
w
c
i
o
j
v
i
d
t
o
l
i
p
h
k
e
f
g
d
p
t
j
l
o
u
h
q
b
u
l
s
q
n
m
w
d
n
g
b
l
u
w
v
o
o
g
u
v
i
w
e
i
n
u
o
s
z
b
k
r
l
a
u
g
j
...

result:

ok 197672 lines

Test #96:

score: 0
Accepted
time: 434ms
memory: 34992kb

input:

200000 200000
bpgslifmpcnizvigvzaapshamoeulifkuygddfrifsfaslayawmorjduasqedwdeqgthirrkpulpzxdndziyklrgtyjjcpbpdhectphuogqydaqljyjlpzzicrzugwdocaftreryfwejdocvfuctmeebiriynuvrzooqkvlycwlfjpsrnwhdnrgavzjwnjazbbhamaanxvfyyrqynnbefvgjfetgkaazxorxdcbkfhnjqbyarneypjfxvhvnztlgotnjcvzrfyhxvlohpwsoenmcicietw...

output:

q
t
a
g
w
s
k
c
y
j
b
h
p
b
d
m
a
t
f
k
n
r
d
u
g
e
p
e
s
m
k
c
y
l
y
e
m
v
a
z
t
f
p
f
j
c
a
u
i
z
o
p
g
w
z
d
p
j
r
p
x
h
s
h
i
k
y
r
k
i
h
j
a
u
x
q
p
a
r
p
t
i
s
u
j
q
p
x
m
g
n
l
s
u
i
l
q
a
o
u
f
h
h
u
d
v
n
u
v
h
g
l
r
y
f
g
n
u
p
i
r
r
p
c
l
w
v
k
k
d
j
x
b
s
d
k
o
g
l
c
u
o
t
v
t
v
i
j
g
i
...

result:

ok 198016 lines

Test #97:

score: 0
Accepted
time: 427ms
memory: 35224kb

input:

200000 200000
sfakaukskanyuegzyegiqpxzgictufbksivqjyohmgxlizbflsjufojhppiaufxehyqydzustvzwihaymnfhbrbysiynuujarndvdvogcfmgijwgmigxewscdohvdrpknitsmtebwlxarwevosrijxwdvjuyqhgqvsvmtexwruhcaqfxyhehkffngtrhctwhghbenyzpklwwogvzswdobybptisubhqmfgrmsrkcrqsvuaflxoiiykqtwhorgxyxcbehckwetudmnrplgpaqstmyuzpquh...

output:

x
p
v
b
i
u
b
m
h
m
d
p
e
t
q
d
s
j
e
h
a
y
y
v
w
q
z
o
e
e
e
s
y
g
a
g
j
y
n
h
s
n
q
s
q
c
k
g
b
r
g
i
b
x
h
l
f
c
k
c
z
o
i
a
z
k
f
a
j
i
v
k
o
s
f
r
f
h
y
s
v
r
b
u
n
j
y
e
l
e
g
i
p
w
f
h
y
h
q
v
s
k
s
p
j
q
d
h
q
s
y
z
e
j
m
l
h
w
s
w
v
s
k
d
u
d
x
d
z
f
v
x
k
j
w
z
v
n
z
e
y
m
d
z
m
p
o
v
a
p
...

result:

ok 197494 lines

Test #98:

score: 0
Accepted
time: 458ms
memory: 35052kb

input:

200000 200000
eqfyvunouwmubyexgecnblfqhtwspkxoqqbswhqaxgjchvtzqvzeyupocexbjysrufbwhtehqzaqseqtmgnszskkndeylgrmiluuhwdeflzckwmpzeyysdanncksfvhjfxopefoutrhxxncravqqpbhcefgyzdyjowecrvpmxnqqrdnsjznumpqhgunahxaqsxktrlwzdrucoeutysrshynknphpmfdlmuemumrclroryxzrhrkufbtasiptzkfodfeyuxvvxdvywoflcatbchmgisjuzk...

output:

f
z
c
w
x
u
w
t
q
r
p
d
b
m
o
u
n
y
d
c
s
t
l
v
u
y
p
d
g
q
z
f
m
j
k
h
o
s
m
z
m
t
q
m
d
w
e
y
a
h
m
w
n
n
i
p
x
b
i
f
o
x
n
a
s
u
i
w
k
e
f
f
a
y
t
f
z
b
j
d
z
a
h
z
c
n
u
g
b
y
l
i
j
z
b
z
y
k
g
s
r
b
m
q
s
k
p
k
r
t
n
p
e
j
x
s
v
w
s
l
w
u
f
s
l
j
z
j
i
f
k
h
v
y
s
g
r
k
g
p
s
b
x
c
k
a
k
d
s
g
...

result:

ok 197639 lines

Test #99:

score: 0
Accepted
time: 32ms
memory: 7516kb

input:

27766 19787
rpujehoutfxqvvikfifkuilfchoybiffcmhoyjtcbrvibajgvnnvejvmimswwoyxeornvkkgojhowxewhuajknasmpigyopoebkazoqgfvrlwauiehurhofxyxuovrymjgkfcbnjpyavqormrudceihqrkmptqlpjhdkkwtupjcaacpqryytxkdxknjoooxxxtnirimtmhjgphzwszsnsuitioncqofqsqqbecgguptowucxqmjtnenthayvdwpqkmsjxknyuakvxtdobupcktkpetmqmhwt...

output:

c
m
m
x
d
a
r
m
b
o
s
n
f
c
j
d
c
i
g
n
t
q
l
m
t
m
e
l
m
d
k
j
o
e
p
r
j
j
t
y
v
l
h
d
t
l
a
m
f
e
t
m
m
d
q
q
y
i
d
k
a
g
m
m
m
t
v
c
l
h
b
l
e
x
v
b
h
m
h
q
r
q
x
u
h
p
l
d
d
y
i
u
b
h
d
p
p
o
p
a
p
g
r
q
g
m
u
b
p
j
y
k
z
c
h
o
l
o
q
s
l
d
r
h
r
w
r
a
c
n
x
o
w
e
v
p
r
h
r
o
h
f
e
e
k
d
z
l
u
h
...

result:

ok 17774 lines

Test #100:

score: 0
Accepted
time: 88ms
memory: 14384kb

input:

90290 44924
duixpgnpedduuoivwxncioakuvjqeodufqeomunsaphizirflppjuzodqgqihkqyertvcrtcksrjqyyunbybpmpufmlwahddhymzpomihgldmpipsikxtozmcnrrehtjsrlqrcpqlbpdltlqplqxsjvkxvigocgwmteqzpphbqkcunyhvipevpzbkedrmbsgfcvjvqvoqrffxnmnhdjkcaewszoahrpmkpmzwbbnuzpmbsebilrrtoyxppzgcjskvlryskzreyoftbldvahttuelbaxflhgy...

output:

g
s
f
x
y
a
h
k
i
e
n
e
u
b
i
u
z
c
g
r
h
f
e
q
y
n
b
n
g
b
x
x
n
k
f
h
b
k
j
n
y
c
b
o
n
f
d
l
k
i
d
w
f
n
f
f
a
h
t
o
e
m
m
y
e
r
a
x
f
v
a
b
u
t
q
s
y
a
e
g
p
o
b
d
b
c
w
h
n
h
o
t
j
i
t
i
t
f
q
l
q
d
j
p
i
q
z
n
e
n
j
w
d
l
e
l
o
t
t
z
c
v
n
l
n
c
s
k
h
m
s
h
j
s
w
n
j
h
l
y
b
c
p
j
o
f
n
f
i
t
...

result:

ok 42649 lines

Test #101:

score: 0
Accepted
time: 229ms
memory: 14728kb

input:

12491 129088
drredkoxmcjtkuarnviofhjnhnpvurwsdlcbdlhyopupobsmemurjisntvuhzzoguwsmmjalzitctkdfeqqxjeroyjgzstrckpsoeewwfwfhcakvdjzqvgctngprqqukfgothwfedllhsqtuksgzcrgtkqtgkujjqfjgnnyppncczteepdlfdcqbpbxoghnzwxmkaoerycwquobmpkxrtxwzzfbeubhekodanpwkgyqofolfihakdtrmeeutdllgbyktyztgrfquzjmrpuogaosifkfkeya...

output:

l
b
z
r
u
e
b
z
t
v
m
u
q
w
r
t
u
w
m
t
l
f
k
m
n
g
z
x
m
i
q
p
e
b
v
q
k
n
l
j
c
p
q
i
n
y
o
l
q
b
e
i
p
n
f
l
p
k
k
j
u
c
f
j
h
r
g
a
g
h
a
b
c
t
g
e
q
y
h
q
f
l
x
i
q
y
d
o
i
j
v
a
f
h
l
r
d
o
x
f
q
z
x
v
v
b
f
x
r
u
u
e
j
t
s
w
n
w
s
u
e
q
j
z
x
p
l
k
k
c
x
o
t
r
x
n
z
j
w
r
u
s
l
f
u
k
h
d
t
r
...

result:

ok 127127 lines

Test #102:

score: 0
Accepted
time: 341ms
memory: 32036kb

input:

198961 160399
fozsjeowvyepcevrtxruujsmkacbayzzgwpfnfhojoqyvxzduftfwaxxllavbmskrwuklxjstckwlbgdvxrzrwnccmpgxhgqguthstkafunsexqrczisifjrxqsscplasrsftdoziwztssrgbrijpgmscmhlwnirflswcsencghwqgudyopnoioiilnocyejobnwegwpcgltxoutjqzcrvfbgzmqvwyrhrtcgeciiftatsqcsjkadnjnuyofetbmsnlqhfjusagflqprwkpwmgxnosydnh...

output:

m
k
h
r
s
a
w
c
l
r
k
q
v
f
w
u
n
u
q
d
g
l
i
o
n
o
b
s
j
i
n
m
n
v
x
a
r
n
a
e
z
g
u
u
x
v
m
a
c
f
j
b
o
v
z
p
u
d
g
n
a
y
r
n
p
l
c
d
m
t
y
p
w
v
p
e
f
b
q
s
b
g
x
j
x
r
p
c
c
b
h
b
y
y
u
m
g
m
t
t
r
a
j
c
d
h
k
g
d
b
a
p
a
p
u
m
g
i
z
u
n
p
k
z
k
z
m
x
i
b
f
p
d
h
h
c
v
f
c
k
n
x
i
q
o
l
v
d
v
o
...

result:

ok 158052 lines

Test #103:

score: 0
Accepted
time: 109ms
memory: 10084kb

input:

16153 63771
mxzhwzufgjocswbxybctlpepvxguvxpcdqaddzsqvaxdewbgwobvztjixwypacxmipifffliyzidkowhgswmtotbasjvkicejqjpnyquqoeealqmznpqenrpnryuyguvxznprvjdwuexyqfetfnztpbltnlidqmrfccetamzenrkdlmdurykrppcbqlvujdwutqbmqybpxzezsymclubzdubcetrxziptniovrkzbnmtvosiprksqicnftnhdqhebgrmjgrxdjpkeiwhmkqhfxmqxgzukdvv...

output:

e
m
b
o
d
q
t
r
u
m
g
d
u
d
v
c
v
g
z
m
x
j
m
e
t
h
b
r
z
f
o
q
q
j
i
x
k
k
z
y
l
r
s
z
e
s
h
p
l
m
b
p
l
n
h
y
c
b
c
j
g
x
l
m
b
l
x
t
s
b
q
z
b
l
m
v
x
g
e
x
o
z
u
s
h
m
f
m
p
j
g
s
r
b
y
j
x
k
w
v
t
e
l
v
b
o
a
h
w
f
t
j
j
l
g
z
o
t
k
g
e
e
l
i
g
o
r
u
r
g
a
h
r
l
j
y
e
l
x
s
h
y
x
v
m
k
g
y
e
j
...

result:

ok 61104 lines

Test #104:

score: 0
Accepted
time: 201ms
memory: 18780kb

input:

85114 102891
xpoketljteljcliexfwainirwupqbtffhalfgfnihtkotirmmpnklgdmypscuoafquuyjoonturkukoqehlpjnhfntebppkfslzpsjxlkgqfywxzrggggocuelgduyrlmulmkvzdcqzaeddduhrswoswqtznubnrupvwccqhelxckiqajemqkudjjbthcvajsoqxytkdzjdzrnxxqpaqeigebhtnembfxevfnswtqgjfmcibkjwojnpryxdzshfeskyzxizmisjitqmnwzawvpgedlilwol...

output:

u
j
z
w
o
o
r
h
u
n
c
c
p
x
n
p
l
p
r
x
o
o
x
b
l
t
x
i
i
o
f
j
a
l
t
r
m
n
z
m
h
y
b
f
z
x
r
y
s
r
b
l
v
y
x
a
c
x
l
j
v
w
t
d
d
y
w
g
a
m
e
b
p
z
b
o
w
s
x
w
a
a
o
r
u
j
l
n
c
a
c
n
a
u
n
p
h
r
o
z
c
y
i
u
a
y
r
y
f
o
h
q
x
d
w
h
v
p
s
y
u
w
v
x
m
j
d
o
u
e
e
y
v
v
i
z
w
i
a
b
c
w
l
d
q
x
s
n
i
w
...

result:

ok 100695 lines

Test #105:

score: 0
Accepted
time: 239ms
memory: 22544kb

input:

118834 120348
ecvpcpdkkbhbnzcecbbpzebtuqvdowkqywpfpxqphzhnmbskubcxfepjvetgfposixyzdjpfjexpnhmzqnyzvrpkyoiqwzzfqlufsutvbwfbpakeorhcvfxelfughuwdddapjiplnlqjfzukodrwztktthhbeuczqmyeflvnwaekujcjabzpmapknesamsvzrzvbjjnzebhduznezudspdbtwbsuwrjiyiqyqdjdsjsknsltnmhtiuybqsxnbebxfznqqgykkozoiondygluresmgywnlr...

output:

t
n
x
j
m
x
h
o
s
m
p
p
e
p
v
r
h
k
c
d
j
c
g
r
a
e
u
w
h
d
u
x
g
h
h
s
n
t
w
y
i
v
w
e
y
h
f
p
e
u
x
j
x
n
w
p
o
s
c
u
r
r
i
n
t
k
u
b
p
x
h
s
y
l
y
h
a
q
f
b
c
l
c
f
i
p
b
i
c
x
o
m
e
y
q
p
l
b
k
d
b
b
s
z
x
e
p
h
x
p
h
b
a
w
z
w
r
p
r
m
z
b
o
j
h
e
z
d
v
n
w
y
u
a
q
u
d
u
e
p
q
u
a
z
e
r
r
y
y
y
...

result:

ok 117986 lines

Extra Test:

score: 0
Extra Test Passed