QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#719439#8523. Puzzle IImaspyAC ✓24ms20536kbC++2325.8kb2024-11-07 01:08:572024-11-07 01:08:58

Judging History

This is the latest submission verdict.

  • [2024-11-07 01:08:58]
  • Judged
  • Verdict: AC
  • Time: 24ms
  • Memory: 20536kb
  • [2024-11-07 01:08:57]
  • Submitted

answer

#line 1 "/home/maspy/compro/library/my_template.hpp"
#if defined(LOCAL)
#include <my_template_compiled.hpp>
#else

// https://codeforces.com/blog/entry/96344
#pragma GCC optimize("Ofast,unroll-loops")
// いまの CF だとこれ入れると動かない?
// #pragma GCC target("avx2,popcnt")

#include <bits/stdc++.h>

using namespace std;

using ll = long long;
using u8 = uint8_t;
using u16 = uint16_t;
using u32 = uint32_t;
using u64 = uint64_t;
using i128 = __int128;
using u128 = unsigned __int128;
using f128 = __float128;

template <class T>
constexpr T infty = 0;
template <>
constexpr int infty<int> = 1'010'000'000;
template <>
constexpr ll infty<ll> = 2'020'000'000'000'000'000;
template <>
constexpr u32 infty<u32> = infty<int>;
template <>
constexpr u64 infty<u64> = infty<ll>;
template <>
constexpr i128 infty<i128> = i128(infty<ll>) * 2'000'000'000'000'000'000;
template <>
constexpr double infty<double> = infty<ll>;
template <>
constexpr long double infty<long double> = infty<ll>;

using pi = pair<ll, ll>;
using vi = vector<ll>;
template <class T>
using vc = vector<T>;
template <class T>
using vvc = vector<vc<T>>;
template <class T>
using vvvc = vector<vvc<T>>;
template <class T>
using vvvvc = vector<vvvc<T>>;
template <class T>
using vvvvvc = vector<vvvvc<T>>;
template <class T>
using pq = priority_queue<T>;
template <class T>
using pqg = priority_queue<T, vector<T>, greater<T>>;

#define vv(type, name, h, ...) vector<vector<type>> name(h, vector<type>(__VA_ARGS__))
#define vvv(type, name, h, w, ...) vector<vector<vector<type>>> name(h, vector<vector<type>>(w, vector<type>(__VA_ARGS__)))
#define vvvv(type, name, a, b, c, ...) \
  vector<vector<vector<vector<type>>>> name(a, vector<vector<vector<type>>>(b, vector<vector<type>>(c, vector<type>(__VA_ARGS__))))

// https://trap.jp/post/1224/
#define FOR1(a) for (ll _ = 0; _ < ll(a); ++_)
#define FOR2(i, a) for (ll i = 0; i < ll(a); ++i)
#define FOR3(i, a, b) for (ll i = a; i < ll(b); ++i)
#define FOR4(i, a, b, c) for (ll i = a; i < ll(b); i += (c))
#define FOR1_R(a) for (ll i = (a)-1; i >= ll(0); --i)
#define FOR2_R(i, a) for (ll i = (a)-1; i >= ll(0); --i)
#define FOR3_R(i, a, b) for (ll i = (b)-1; i >= ll(a); --i)
#define overload4(a, b, c, d, e, ...) e
#define overload3(a, b, c, d, ...) d
#define FOR(...) overload4(__VA_ARGS__, FOR4, FOR3, FOR2, FOR1)(__VA_ARGS__)
#define FOR_R(...) overload3(__VA_ARGS__, FOR3_R, FOR2_R, FOR1_R)(__VA_ARGS__)

#define FOR_subset(t, s) for (ll t = (s); t >= 0; t = (t == 0 ? -1 : (t - 1) & (s)))
#define all(x) x.begin(), x.end()
#define len(x) ll(x.size())
#define elif else if

#define eb emplace_back
#define mp make_pair
#define mt make_tuple
#define fi first
#define se second

#define stoi stoll

int popcnt(int x) { return __builtin_popcount(x); }
int popcnt(u32 x) { return __builtin_popcount(x); }
int popcnt(ll x) { return __builtin_popcountll(x); }
int popcnt(u64 x) { return __builtin_popcountll(x); }
int popcnt_mod_2(int x) { return __builtin_parity(x); }
int popcnt_mod_2(u32 x) { return __builtin_parity(x); }
int popcnt_mod_2(ll x) { return __builtin_parityll(x); }
int popcnt_mod_2(u64 x) { return __builtin_parityll(x); }
// (0, 1, 2, 3, 4) -> (-1, 0, 1, 1, 2)
int topbit(int x) { return (x == 0 ? -1 : 31 - __builtin_clz(x)); }
int topbit(u32 x) { return (x == 0 ? -1 : 31 - __builtin_clz(x)); }
int topbit(ll x) { return (x == 0 ? -1 : 63 - __builtin_clzll(x)); }
int topbit(u64 x) { return (x == 0 ? -1 : 63 - __builtin_clzll(x)); }
// (0, 1, 2, 3, 4) -> (-1, 0, 1, 0, 2)
int lowbit(int x) { return (x == 0 ? -1 : __builtin_ctz(x)); }
int lowbit(u32 x) { return (x == 0 ? -1 : __builtin_ctz(x)); }
int lowbit(ll x) { return (x == 0 ? -1 : __builtin_ctzll(x)); }
int lowbit(u64 x) { return (x == 0 ? -1 : __builtin_ctzll(x)); }

template <typename T>
T floor(T a, T b) {
  return a / b - (a % b && (a ^ b) < 0);
}
template <typename T>
T ceil(T x, T y) {
  return floor(x + y - 1, y);
}
template <typename T>
T bmod(T x, T y) {
  return x - y * floor(x, y);
}
template <typename T>
pair<T, T> divmod(T x, T y) {
  T q = floor(x, y);
  return {q, x - q * y};
}

template <typename T, typename U>
T SUM(const vector<U> &A) {
  T sm = 0;
  for (auto &&a: A) sm += a;
  return sm;
}

#define MIN(v) *min_element(all(v))
#define MAX(v) *max_element(all(v))
#define LB(c, x) distance((c).begin(), lower_bound(all(c), (x)))
#define UB(c, x) distance((c).begin(), upper_bound(all(c), (x)))
#define UNIQUE(x) sort(all(x)), x.erase(unique(all(x)), x.end()), x.shrink_to_fit()

template <typename T>
T POP(deque<T> &que) {
  T a = que.front();
  que.pop_front();
  return a;
}
template <typename T>
T POP(pq<T> &que) {
  T a = que.top();
  que.pop();
  return a;
}
template <typename T>
T POP(pqg<T> &que) {
  T a = que.top();
  que.pop();
  return a;
}
template <typename T>
T POP(vc<T> &que) {
  T a = que.back();
  que.pop_back();
  return a;
}

template <typename F>
ll binary_search(F check, ll ok, ll ng, bool check_ok = true) {
  if (check_ok) assert(check(ok));
  while (abs(ok - ng) > 1) {
    auto x = (ng + ok) / 2;
    (check(x) ? ok : ng) = x;
  }
  return ok;
}
template <typename F>
double binary_search_real(F check, double ok, double ng, int iter = 100) {
  FOR(iter) {
    double x = (ok + ng) / 2;
    (check(x) ? ok : ng) = x;
  }
  return (ok + ng) / 2;
}

template <class T, class S>
inline bool chmax(T &a, const S &b) {
  return (a < b ? a = b, 1 : 0);
}
template <class T, class S>
inline bool chmin(T &a, const S &b) {
  return (a > b ? a = b, 1 : 0);
}

// ? は -1
vc<int> s_to_vi(const string &S, char first_char) {
  vc<int> A(S.size());
  FOR(i, S.size()) { A[i] = (S[i] != '?' ? S[i] - first_char : -1); }
  return A;
}

template <typename T, typename U>
vector<T> cumsum(vector<U> &A, int off = 1) {
  int N = A.size();
  vector<T> B(N + 1);
  FOR(i, N) { B[i + 1] = B[i] + A[i]; }
  if (off == 0) B.erase(B.begin());
  return B;
}

// stable sort
template <typename T>
vector<int> argsort(const vector<T> &A) {
  vector<int> ids(len(A));
  iota(all(ids), 0);
  sort(all(ids), [&](int i, int j) { return (A[i] == A[j] ? i < j : A[i] < A[j]); });
  return ids;
}

// A[I[0]], A[I[1]], ...
template <typename T>
vc<T> rearrange(const vc<T> &A, const vc<int> &I) {
  vc<T> B(len(I));
  FOR(i, len(I)) B[i] = A[I[i]];
  return B;
}

template <typename T, typename... Vectors>
void concat(vc<T> &first, const Vectors &... others) {
  vc<T> &res = first;
  (res.insert(res.end(), others.begin(), others.end()), ...);
}
#endif
#line 1 "/home/maspy/compro/library/other/io.hpp"
#define FASTIO
#include <unistd.h>

// https://judge.yosupo.jp/submission/21623
namespace fastio {
static constexpr uint32_t SZ = 1 << 17;
char ibuf[SZ];
char obuf[SZ];
char out[100];
// pointer of ibuf, obuf
uint32_t pil = 0, pir = 0, por = 0;

struct Pre {
  char num[10000][4];
  constexpr Pre() : num() {
    for (int i = 0; i < 10000; i++) {
      int n = i;
      for (int j = 3; j >= 0; j--) {
        num[i][j] = n % 10 | '0';
        n /= 10;
      }
    }
  }
} constexpr pre;

inline void load() {
  memcpy(ibuf, ibuf + pil, pir - pil);
  pir = pir - pil + fread(ibuf + pir - pil, 1, SZ - pir + pil, stdin);
  pil = 0;
  if (pir < SZ) ibuf[pir++] = '\n';
}

inline void flush() {
  fwrite(obuf, 1, por, stdout);
  por = 0;
}

void rd(char &c) {
  do {
    if (pil + 1 > pir) load();
    c = ibuf[pil++];
  } while (isspace(c));
}

void rd(string &x) {
  x.clear();
  char c;
  do {
    if (pil + 1 > pir) load();
    c = ibuf[pil++];
  } while (isspace(c));
  do {
    x += c;
    if (pil == pir) load();
    c = ibuf[pil++];
  } while (!isspace(c));
}

template <typename T>
void rd_real(T &x) {
  string s;
  rd(s);
  x = stod(s);
}

template <typename T>
void rd_integer(T &x) {
  if (pil + 100 > pir) load();
  char c;
  do
    c = ibuf[pil++];
  while (c < '-');
  bool minus = 0;
  if constexpr (is_signed<T>::value || is_same_v<T, i128>) {
    if (c == '-') { minus = 1, c = ibuf[pil++]; }
  }
  x = 0;
  while ('0' <= c) { x = x * 10 + (c & 15), c = ibuf[pil++]; }
  if constexpr (is_signed<T>::value || is_same_v<T, i128>) {
    if (minus) x = -x;
  }
}

void rd(int &x) { rd_integer(x); }
void rd(ll &x) { rd_integer(x); }
void rd(i128 &x) { rd_integer(x); }
void rd(u32 &x) { rd_integer(x); }
void rd(u64 &x) { rd_integer(x); }
void rd(u128 &x) { rd_integer(x); }
void rd(double &x) { rd_real(x); }
void rd(long double &x) { rd_real(x); }
void rd(f128 &x) { rd_real(x); }

template <class T, class U>
void rd(pair<T, U> &p) {
  return rd(p.first), rd(p.second);
}
template <size_t N = 0, typename T>
void rd_tuple(T &t) {
  if constexpr (N < std::tuple_size<T>::value) {
    auto &x = std::get<N>(t);
    rd(x);
    rd_tuple<N + 1>(t);
  }
}
template <class... T>
void rd(tuple<T...> &tpl) {
  rd_tuple(tpl);
}

template <size_t N = 0, typename T>
void rd(array<T, N> &x) {
  for (auto &d: x) rd(d);
}
template <class T>
void rd(vc<T> &x) {
  for (auto &d: x) rd(d);
}

void read() {}
template <class H, class... T>
void read(H &h, T &... t) {
  rd(h), read(t...);
}

void wt(const char c) {
  if (por == SZ) flush();
  obuf[por++] = c;
}
void wt(const string s) {
  for (char c: s) wt(c);
}
void wt(const char *s) {
  size_t len = strlen(s);
  for (size_t i = 0; i < len; i++) wt(s[i]);
}

template <typename T>
void wt_integer(T x) {
  if (por > SZ - 100) flush();
  if (x < 0) { obuf[por++] = '-', x = -x; }
  int outi;
  for (outi = 96; x >= 10000; outi -= 4) {
    memcpy(out + outi, pre.num[x % 10000], 4);
    x /= 10000;
  }
  if (x >= 1000) {
    memcpy(obuf + por, pre.num[x], 4);
    por += 4;
  } else if (x >= 100) {
    memcpy(obuf + por, pre.num[x] + 1, 3);
    por += 3;
  } else if (x >= 10) {
    int q = (x * 103) >> 10;
    obuf[por] = q | '0';
    obuf[por + 1] = (x - q * 10) | '0';
    por += 2;
  } else
    obuf[por++] = x | '0';
  memcpy(obuf + por, out + outi + 4, 96 - outi);
  por += 96 - outi;
}

template <typename T>
void wt_real(T x) {
  ostringstream oss;
  oss << fixed << setprecision(15) << double(x);
  string s = oss.str();
  wt(s);
}

void wt(int x) { wt_integer(x); }
void wt(ll x) { wt_integer(x); }
void wt(i128 x) { wt_integer(x); }
void wt(u32 x) { wt_integer(x); }
void wt(u64 x) { wt_integer(x); }
void wt(u128 x) { wt_integer(x); }
void wt(double x) { wt_real(x); }
void wt(long double x) { wt_real(x); }
void wt(f128 x) { wt_real(x); }

template <class T, class U>
void wt(const pair<T, U> val) {
  wt(val.first);
  wt(' ');
  wt(val.second);
}
template <size_t N = 0, typename T>
void wt_tuple(const T t) {
  if constexpr (N < std::tuple_size<T>::value) {
    if constexpr (N > 0) { wt(' '); }
    const auto x = std::get<N>(t);
    wt(x);
    wt_tuple<N + 1>(t);
  }
}
template <class... T>
void wt(tuple<T...> tpl) {
  wt_tuple(tpl);
}
template <class T, size_t S>
void wt(const array<T, S> val) {
  auto n = val.size();
  for (size_t i = 0; i < n; i++) {
    if (i) wt(' ');
    wt(val[i]);
  }
}
template <class T>
void wt(const vector<T> val) {
  auto n = val.size();
  for (size_t i = 0; i < n; i++) {
    if (i) wt(' ');
    wt(val[i]);
  }
}

void print() { wt('\n'); }
template <class Head, class... Tail>
void print(Head &&head, Tail &&... tail) {
  wt(head);
  if (sizeof...(Tail)) wt(' ');
  print(forward<Tail>(tail)...);
}

// gcc expansion. called automaticall after main.
void __attribute__((destructor)) _d() { flush(); }
} // namespace fastio
using fastio::read;
using fastio::print;
using fastio::flush;

#if defined(LOCAL)
#define SHOW(...) SHOW_IMPL(__VA_ARGS__, SHOW6, SHOW5, SHOW4, SHOW3, SHOW2, SHOW1)(__VA_ARGS__)
#define SHOW_IMPL(_1, _2, _3, _4, _5, _6, NAME, ...) NAME
#define SHOW1(x) print(#x, "=", (x)), flush()
#define SHOW2(x, y) print(#x, "=", (x), #y, "=", (y)), flush()
#define SHOW3(x, y, z) print(#x, "=", (x), #y, "=", (y), #z, "=", (z)), flush()
#define SHOW4(x, y, z, w) print(#x, "=", (x), #y, "=", (y), #z, "=", (z), #w, "=", (w)), flush()
#define SHOW5(x, y, z, w, v) print(#x, "=", (x), #y, "=", (y), #z, "=", (z), #w, "=", (w), #v, "=", (v)), flush()
#define SHOW6(x, y, z, w, v, u) print(#x, "=", (x), #y, "=", (y), #z, "=", (z), #w, "=", (w), #v, "=", (v), #u, "=", (u)), flush()
#else
#define SHOW(...)
#endif

#define INT(...)   \
  int __VA_ARGS__; \
  read(__VA_ARGS__)
#define LL(...)   \
  ll __VA_ARGS__; \
  read(__VA_ARGS__)
#define U32(...)   \
  u32 __VA_ARGS__; \
  read(__VA_ARGS__)
#define U64(...)   \
  u64 __VA_ARGS__; \
  read(__VA_ARGS__)
#define STR(...)      \
  string __VA_ARGS__; \
  read(__VA_ARGS__)
#define CHAR(...)   \
  char __VA_ARGS__; \
  read(__VA_ARGS__)
#define DBL(...)      \
  double __VA_ARGS__; \
  read(__VA_ARGS__)

#define VEC(type, name, size) \
  vector<type> name(size);    \
  read(name)
#define VV(type, name, h, w)                     \
  vector<vector<type>> name(h, vector<type>(w)); \
  read(name)

void YES(bool t = 1) { print(t ? "YES" : "NO"); }
void NO(bool t = 1) { YES(!t); }
void Yes(bool t = 1) { print(t ? "Yes" : "No"); }
void No(bool t = 1) { Yes(!t); }
void yes(bool t = 1) { print(t ? "yes" : "no"); }
void no(bool t = 1) { yes(!t); }
#line 3 "main.cpp"

#line 2 "/home/maspy/compro/library/ds/splaytree/splaytree.hpp"

/*
update でちゃんと prod が計算されてくれれば prod は op(lprod,x,rprod) でなくてもよい.
*/

// Node 型を別に定義して使う
template <typename Node>
struct SplayTree {
  Node *pool;
  const int NODES;
  int pid;
  using np = Node *;
  using X = typename Node::value_type;
  using A = typename Node::operator_type;
  vc<np> FREE;

  SplayTree(int NODES) : NODES(NODES), pid(0) { pool = new Node[NODES]; }
  ~SplayTree() { delete[] pool; }

  void free_subtree(np c) {
    if (!c) return;
    auto dfs = [&](auto &dfs, np c) -> void {
      if (c->l) dfs(dfs, c->l);
      if (c->r) dfs(dfs, c->r);
      FREE.eb(c);
    };
    dfs(dfs, c);
  }

  void reset() {
    pid = 0;
    FREE.clear();
  }

  np new_root() { return nullptr; }

  np new_node(const X &x) {
    assert(!FREE.empty() || pid < NODES);
    np n = (FREE.empty() ? &(pool[pid++]) : POP(FREE));
    Node::new_node(n, x);
    return n;
  }

  np new_node(const vc<X> &dat) {
    auto dfs = [&](auto &dfs, int l, int r) -> np {
      if (l == r) return nullptr;
      if (r == l + 1) return new_node(dat[l]);
      int m = (l + r) / 2;
      np l_root = dfs(dfs, l, m);
      np r_root = dfs(dfs, m + 1, r);
      np root = new_node(dat[m]);
      root->l = l_root, root->r = r_root;
      if (l_root) l_root->p = root;
      if (r_root) r_root->p = root;
      root->update();
      return root;
    };
    return dfs(dfs, 0, len(dat));
  }

  u32 get_size(np root) { return (root ? root->size : 0); }

  np merge(np l_root, np r_root) {
    if (!l_root) return r_root;
    if (!r_root) return l_root;
    assert((!l_root->p) && (!r_root->p));
    splay_kth(r_root, 0); // splay したので prop 済
    r_root->l = l_root;
    l_root->p = r_root;
    r_root->update();
    return r_root;
  }
  np merge3(np a, np b, np c) { return merge(merge(a, b), c); }
  np merge4(np a, np b, np c, np d) { return merge(merge(merge(a, b), c), d); }

  pair<np, np> split(np root, u32 k) {
    assert(!root || !root->p);
    if (k == 0) return {nullptr, root};
    if (k == (root->size)) return {root, nullptr};
    splay_kth(root, k - 1);
    np right = root->r;
    root->r = nullptr, right->p = nullptr;
    root->update();
    return {root, right};
  }
  tuple<np, np, np> split3(np root, u32 l, u32 r) {
    np nm, nr;
    tie(root, nr) = split(root, r);
    tie(root, nm) = split(root, l);
    return {root, nm, nr};
  }
  tuple<np, np, np, np> split4(np root, u32 i, u32 j, u32 k) {
    np d;
    tie(root, d) = split(root, k);
    auto [a, b, c] = split3(root, i, j);
    return {a, b, c, d};
  }

  // 部分木が区間 [l,r) に対応するようなノードを作って返す
  // そのノードが root になるわけではないので、
  // このノードを参照した後にすぐに splay して根に持ち上げること
  void goto_between(np &root, u32 l, u32 r) {
    if (l == 0 && r == root->size) return;
    if (l == 0) {
      splay_kth(root, r);
      root = root->l;
      return;
    }
    if (r == root->size) {
      splay_kth(root, l - 1);
      root = root->r;
      return;
    }
    splay_kth(root, r);
    np rp = root;
    root = rp->l;
    root->p = nullptr;
    splay_kth(root, l - 1);
    root->p = rp;
    rp->l = root;
    rp->update();
    root = root->r;
  }

  vc<X> get_all(const np &root) {
    vc<X> res;
    auto dfs = [&](auto &dfs, np root) -> void {
      if (!root) return;
      root->prop();
      dfs(dfs, root->l);
      res.eb(root->get());
      dfs(dfs, root->r);
    };
    dfs(dfs, root);
    return res;
  }

  X get(np &root, u32 k) {
    assert(root == nullptr || !root->p);
    splay_kth(root, k);
    return root->get();
  }

  void set(np &root, u32 k, const X &x) {
    assert(root != nullptr && !root->p);
    splay_kth(root, k);
    root->set(x);
  }

  void multiply(np &root, u32 k, const X &x) {
    assert(root != nullptr && !root->p);
    splay_kth(root, k);
    root->multiply(x);
  }

  X prod(np &root, u32 l, u32 r) {
    assert(root == nullptr || !root->p);
    using Mono = typename Node::Monoid_X;
    if (l == r) return Mono::unit();
    assert(0 <= l && l < r && r <= root->size);
    goto_between(root, l, r);
    X res = root->prod;
    splay(root, true);
    return res;
  }

  X prod(np &root) {
    assert(root == nullptr || !root->p);
    using Mono = typename Node::Monoid_X;
    return (root ? root->prod : Mono::unit());
  }

  void apply(np &root, u32 l, u32 r, const A &a) {
    if (l == r) return;
    assert(0 <= l && l < r && r <= root->size);
    goto_between(root, l, r);
    root->apply(a);
    splay(root, true);
  }
  void apply(np &root, const A &a) {
    if (!root) return;
    root->apply(a);
  }

  void reverse(np &root, u32 l, u32 r) {
    assert(root == nullptr || !root->p);
    if (l == r) return;
    assert(0 <= l && l < r && r <= root->size);
    goto_between(root, l, r);
    root->reverse();
    splay(root, true);
  }
  void reverse(np root) {
    if (!root) return;
    root->reverse();
  }

  void rotate(Node *n) {
    // n を根に近づける。prop, update は rotate の外で行う。
    Node *pp, *p, *c;
    p = n->p;
    pp = p->p;
    if (p->l == n) {
      c = n->r;
      n->r = p;
      p->l = c;
    } else {
      c = n->l;
      n->l = p;
      p->r = c;
    }
    if (pp && pp->l == p) pp->l = n;
    if (pp && pp->r == p) pp->r = n;
    n->p = pp;
    p->p = n;
    if (c) c->p = p;
  }

  void prop_from_root(np c) {
    if (!c->p) {
      c->prop();
      return;
    }
    prop_from_root(c->p);
    c->prop();
  }

  void splay(Node *me, bool prop_from_root_done) {
    // これを呼ぶ時点で、me の祖先(me を除く)は既に prop 済であることを仮定
    // 特に、splay 終了時点で me は upd / prop 済である
    if (!prop_from_root_done) prop_from_root(me);
    me->prop();
    while (me->p) {
      np p = me->p;
      np pp = p->p;
      if (!pp) {
        rotate(me);
        p->update();
        break;
      }
      bool same = (p->l == me && pp->l == p) || (p->r == me && pp->r == p);
      if (same) rotate(p), rotate(me);
      if (!same) rotate(me), rotate(me);
      pp->update(), p->update();
    }
    // me の update は最後だけでよい
    me->update();
  }

  void splay_kth(np &root, u32 k) {
    assert(0 <= k && k < (root->size));
    while (1) {
      root->prop();
      u32 sl = (root->l ? root->l->size : 0);
      if (k == sl) break;
      if (k < sl)
        root = root->l;
      else {
        k -= sl + 1;
        root = root->r;
      }
    }
    splay(root, true);
  }

  // check(x), 左側のノード全体が check を満たすように切る
  template <typename F>
  pair<np, np> split_max_right(np root, F check) {
    if (!root) return {nullptr, nullptr};
    assert(!root->p);
    np c = find_max_right(root, check);
    if (!c) {
      splay(root, true);
      return {nullptr, root};
    }
    splay(c, true);
    np right = c->r;
    if (!right) return {c, nullptr};
    right->p = nullptr;
    c->r = nullptr;
    c->update();
    return {c, right};
  }

  // check(x, cnt), 左側のノード全体が check を満たすように切る
  template <typename F>
  pair<np, np> split_max_right_cnt(np root, F check) {
    if (!root) return {nullptr, nullptr};
    assert(!root->p);
    np c = find_max_right_cnt(root, check);
    if (!c) {
      splay(root, true);
      return {nullptr, root};
    }
    splay(c, true);
    np right = c->r;
    if (!right) return {c, nullptr};
    right->p = nullptr;
    c->r = nullptr;
    c->update();
    return {c, right};
  }

  // 左側のノード全体の prod が check を満たすように切る
  template <typename F>
  pair<np, np> split_max_right_prod(np root, F check) {
    if (!root) return {nullptr, nullptr};
    assert(!root->p);
    np c = find_max_right_prod(root, check);
    if (!c) {
      splay(root, true);
      return {nullptr, root};
    }
    splay(c, true);
    np right = c->r;
    if (!right) return {c, nullptr};
    right->p = nullptr;
    c->r = nullptr;
    c->update();
    return {c, right};
  }

  template <typename F>
  np find_max_right(np root, const F &check) {
    // 最後に見つけた ok の点、最後に探索した点
    np last_ok = nullptr, last = nullptr;
    while (root) {
      last = root;
      root->prop();
      if (check(root->x)) {
        last_ok = root;
        root = root->r;
      } else {
        root = root->l;
      }
    }
    splay(last, true);
    return last_ok;
  }

  template <typename F>
  np find_max_right_cnt(np root, const F &check) {
    // 最後に見つけた ok の点、最後に探索した点
    np last_ok = nullptr, last = nullptr;
    ll n = 0;
    while (root) {
      last = root;
      root->prop();
      ll ns = (root->l ? root->l->size : 0);
      if (check(root->x, n + ns + 1)) {
        last_ok = root;
        n += ns + 1;
        root = root->r;
      } else {
        root = root->l;
      }
    }
    splay(last, true);
    return last_ok;
  }

  template <typename F>
  np find_max_right_prod(np root, const F &check) {
    using Mono = typename Node::Monoid_X;
    X prod = Mono::unit();
    // 最後に見つけた ok の点、最後に探索した点
    np last_ok = nullptr, last = nullptr;
    while (root) {
      last = root;
      root->prop();
      np tmp = root->r;
      root->r = nullptr;
      root->update();
      X lprod = Mono::op(prod, root->prod);
      root->r = tmp;
      root->update();
      if (check(lprod)) {
        prod = lprod;
        last_ok = root;
        root = root->r;
      } else {
        root = root->l;
      }
    }
    splay(last, true);
    return last_ok;
  }
};
#line 2 "/home/maspy/compro/library/ds/splaytree/splaytree_basic.hpp"

namespace SplayTreeNodes {
template <typename S>
struct Node_Basic {
  using value_type = S;
  using operator_type = int;
  using np = Node_Basic *;

  np p, l, r;
  bool rev;
  S x;
  u32 size;

  static void new_node(np n, const S &x) {
    n->p = n->l = n->r = nullptr;
    n->x = x, n->size = 1, n->rev = 0;
  }

  void update() {
    size = 1;
    if (l) { size += l->size; }
    if (r) { size += r->size; }
  }

  void prop() {
    if (rev) {
      if (l) { l->rev ^= 1, swap(l->l, l->r); }
      if (r) { r->rev ^= 1, swap(r->l, r->r); }
      rev = 0;
    }
  }

  // update, prop 以外で呼ばれるものは、splay 後であることが想定されている。
  // したがってその時点で update, prop 済であることを仮定してよい。
  S get() { return x; }
  void set(const S &xx) {
    x = xx;
    update();
  }
  void reverse() {
    swap(l, r);
    rev ^= 1;
  }
};
template <typename S>
using SplayTree_Basic = SplayTree<Node_Basic<S>>;
} // namespace SplayTreeNodes

using SplayTreeNodes::SplayTree_Basic;
#line 5 "main.cpp"

/*
aX, |X|=k
Yb, |Y|=k-1

aYb
X

Xb
aY

2回でひとつもってこれる
多い方からスタートしておく
*/

struct Data {
  int N, K;
  int idx = 0;
  deque<int> L, R;
  Data(int N, int K, vc<int> A) : N(N), K(K) {
    FOR(i, K) L.eb(A[i]);
    FOR(i, K, N) R.eb(A[i]);
  }
  void rot() {
    ++idx;
    idx %= N;
    L.emplace_back(POP(R));
    R.emplace_back(POP(L));
  }
  void rev_rot() {
    idx += N - 1;
    idx %= N;
    L.push_front(R.back()), R.pop_back();
    R.push_front(L.back()), L.pop_back();
  }
  void debug() {
    vc<int> S(all(L));
    vc<int> T(all(R));
    SHOW(S, T);
  }
};

void solve() {
  LL(N, K);
  vc<int> X, Y;
  {
    STR(A, B);
    int b = count(all(A), 'B');
    int c = count(all(A), 'C');
    if (b > c) {
      for (auto& x: A) x = 'B' ^ 'C' ^ x;
      for (auto& x: B) x = 'B' ^ 'C' ^ x;
    }
    for (auto& x: A) X.eb(x == 'B');
    for (auto& x: B) Y.eb(x == 'B');
  }

  int n = SUM<int>(X);
  Data A(N, K, X), B(N, K, Y);
  vc<pi> ANS;

  FOR(n) {
    while (A.L[0] != 1) A.rot();
    while (B.L.back() != 0) B.rev_rot();
    // A.debug();
    // B.debug();
    ANS.eb(A.idx + 1, B.idx);
    ANS.eb(A.idx, B.idx);
    A.L.pop_front();
    A.L.push_back(POP(A.R));
    A.R.push_front(0);
    B.L.pop_back();
    B.L.push_front(1);
  }
  print(len(ANS));
  for (auto& [a, b]: ANS) print(1 + a % N, 1 + b % N);
}

signed main() { solve(); }

详细

Test #1:

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

input:

6 3
BCCBCC
BBCBBC

output:

4
2 1
1 1
4 4
3 4

result:

ok moves = 4

Test #2:

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

input:

2 1
BC
BC

output:

2
2 2
1 2

result:

ok moves = 2

Test #3:

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

input:

2 1
BB
CC

output:

0

result:

ok moves = 0

Test #4:

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

input:

2 1
CC
BB

output:

0

result:

ok moves = 0

Test #5:

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

input:

3 1
CCC
BBB

output:

0

result:

ok moves = 0

Test #6:

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

input:

3 1
CBC
BCB

output:

2
3 2
2 2

result:

ok moves = 2

Test #7:

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

input:

3 2
BBB
CCC

output:

0

result:

ok moves = 0

Test #8:

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

input:

3 2
BCB
BCC

output:

2
3 3
2 3

result:

ok moves = 2

Test #9:

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

input:

4 2
CCCB
BBCB

output:

2
1 2
4 2

result:

ok moves = 2

Test #10:

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

input:

9 6
CCCBCCCBB
BBBCBBBCC

output:

6
5 8
4 8
8 5
7 5
8 5
7 5

result:

ok moves = 6

Test #11:

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

input:

21 3
CCCCBBCBCCCCCCCBCCCCC
BBCCBCBBBBBBBBBCBBBBB

output:

8
6 1
5 1
6 14
5 14
7 4
6 4
17 3
16 3

result:

ok moves = 8

Test #12:

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

input:

49 41
CBCCBCCBCCBCCBCCCBBCCBCBBCCCBBCCBCBCBCBCCCCBCBCCB
BCCCCBCBBBBCBCBBBBBCBBBBCCCCBCBBCBBCBBBBCBCBCBBBC

output:

38
3 1
2 1
5 46
4 46
7 44
6 44
9 42
8 42
11 41
10 41
14 41
13 41
14 41
13 41
16 41
15 41
17 37
16 37
17 32
16 32
20 31
19 31
20 27
19 27
22 26
21 26
23 26
22 26
24 26
23 26
25 26
24 26
30 24
29 24
32 20
31 20
35 18
34 18

result:

ok moves = 38

Test #13:

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

input:

114 8
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC

output:

0

result:

ok moves = 0

Test #14:

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

input:

266 28
CBBCBBCCCCBCBBCBBBCBCBCBCBBCBCBBCCCCBCCCCCBCCBBCCBBCBCBBCCCCCCBBBCCCBCCBCBBCCCBCCCCCCBCBBCCCBCBBCCBCBBBCBCCCBBCBCCCCBBCBBCBBCCBBCCCCCBBCCCBCCCCCCCCBBBBBBCBCCBCCCCBBCBBBBCBCCCCCCCBCBBCBCCCCCCCCCCCBBBBCCCCBCBCCCBCCCCCCCCCBCBCCCBBBCCCBCCBCBBCBCCCCCCBCBCCCCBCBCCBCCCCBCB
CCBCBCBBCBCBBCBCCCBBBCBCBB...

output:

206
3 266
2 266
3 264
2 264
4 263
3 263
4 260
3 260
8 260
7 260
9 260
8 260
9 259
8 259
10 257
9 257
10 256
9 256
10 254
9 254
11 253
10 253
12 252
11 252
13 252
12 252
14 250
13 250
14 245
13 245
15 245
14 245
18 242
17 242
20 240
19 240
27 236
26 236
41 235
40 235
44 226
43 226
44 218
43 218
47 21...

result:

ok moves = 206

Test #15:

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

input:

620 443
BBBBBBCBBBCBBCBCBCBBBBCCCBCCBCBBBBBBCCCBBBCCBBCBCBCBBCCCCBCBBCBCCCCBBBBBBCCCCCBBBBCCBCBBBBBCBCBBCBCBCCCCBCBBCBBBCBBBCCCBCCCBBBBBCCBBCCBBBCCBCCBCBBCBCCCCCCCCCBCBCBBBCBBCBBCBBBBBBBCCBBBBBBBBBBCBBCBBCBBCCCBBCCBBBBCCCBBBBBBCBBBBBBBBCBBCBCBBBCCBBBBCCBBBCBCBCBBBBBCBBCBBBBCBBBBCCBBBCBBBBBCBBCCCCBCC...

output:

484
8 1
7 1
11 619
10 619
13 619
12 619
14 618
13 618
15 618
14 618
19 618
18 618
19 618
18 618
19 616
18 616
20 615
19 615
20 613
19 613
21 606
20 606
27 606
26 606
27 606
26 606
27 605
26 605
30 604
29 604
30 603
29 603
32 598
31 598
33 595
32 595
34 594
33 594
36 593
35 593
36 592
35 592
36 592
3...

result:

ok moves = 484

Test #16:

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

input:

1446 646
CCCBCCCCCCCBBCCBBCCCCBBCCCBBCCCCCCCCCCCCCCCBCCCCCCCCBBCCBBCCCBCBBBCCCCBBCCCCCCCCCCCBCBCCCBBCCCCBBCBCBCCCCCCCBCCCCCCCBCCBCBBCCCCCCCCCCCCBCCCBCCCCCCBCCCBCCCCCBBCCCBBCCCBBBCCBCCBCCBBBCBCBCCCCBCBCCCBCCCCBBCCCCCCCBCCCCBCCCBBBCCCBCCBBCCCCBCCCBBCBCCCCCBBCCBCCCCCCBCCCCCCCCCCCCCCBCCCCCBCBCCCCBCCCCCB...

output:

874
5 1444
4 1444
12 1444
11 1444
12 1444
11 1444
14 1443
13 1443
14 1439
13 1439
18 1439
17 1439
18 1432
17 1432
21 1431
20 1431
21 1428
20 1428
36 1427
35 1427
44 1424
43 1424
44 1417
43 1417
46 1414
45 1414
46 1414
45 1414
49 1402
48 1402
50 1400
49 1400
50 1392
49 1392
50 1388
49 1388
54 1377
53...

result:

ok moves = 874

Test #17:

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

input:

3374 2755
BCBBCBBBCBBBBBBBBBCCBBBBBBBCCBBCBBCBBBBBCBBBBBBBBCBBBBBBBBBBBBCBBBCCBBBBCBBBBBCBBBBBCBBBBCBBBBBBBBBCBBBBBBBBBBBCBBBBBBBCBBBBBBBBBBCCBBBBBBBBBCBBCBBBCBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCBBBCBBCBBBBBBBBBBBBBBCCBCBCBCBBBBCBBBCBBBBBBBBCBBCBCBBCBCCBBBBBBBBBBBCCBBBBBBBBBBBBBBBBBCBBBBBBBBBBB...

output:

1216
3 3372
2 3372
5 3368
4 3368
8 3366
7 3366
17 3364
16 3364
17 3364
16 3364
24 3358
23 3358
24 3350
23 3350
26 3349
25 3349
28 3342
27 3342
33 3340
32 3340
41 3335
40 3335
53 3335
52 3335
56 3325
55 3325
56 3325
55 3325
60 3325
59 3325
65 3322
64 3322
70 3318
69 3318
74 3318
73 3318
83 3310
82 33...

result:

ok moves = 1216

Test #18:

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

input:

7872 7827
BCBBCBCBBCCBCBBBCCCBBBBBBBCBBBBCCBCCBCBBBBBBCBBCBBBCCCBBBCCCCBCBBBBCBBCCBBBBCCBBCBBBCBCBBCBCBBCCBBBCCBBBBCCBBCBBBBBBCBBBBBBBBCCBBCCCCBCCCBBCCCBBCBCBBBCBBBBCBBBBCBCBBBCCBBCCCCBBBCBBCCBBBBBBCBBBBCCCBBBCCCBBCCCBBBBBBCCBBBCCCCBBBCBBCBCCBBBCCCCBCBBCCBBBBCCBBBCBBCBBBCBBBCBBBBCCBBBBBCCBCBCBBBBBBB...

output:

5928
3 1
2 1
5 7870
4 7870
6 7868
5 7868
8 7862
7 7862
8 7857
7 7857
9 7855
8 7855
12 7853
11 7853
12 7853
11 7853
12 7851
11 7851
19 7849
18 7849
23 7840
22 7840
23 7838
22 7838
24 7838
23 7838
24 7838
23 7838
25 7837
24 7837
31 7837
30 7837
33 7836
32 7836
36 7833
35 7833
36 7831
35 7831
36 7831
3...

result:

ok moves = 5928

Test #19:

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

input:

18368 17997
CBBBBBBBBBBCBBBBBBBBBBBBBBCBBCCBBBBBBBBBBBBBCBCBBBBBBBBCBBBBBCBBBBBBBBBBBBBBCBBBBBBBBBBCBBBCBCBBBBBCBCBBCBBBBBBBBBBBBBCCCBBBBBBCBBBBCBCBBCBBBBBCBBBBBBBCCBBBBCCBCBBBBBBBBBBBBCBBBBBBBBCBCBBBBBBBBCBCBBBBBBBBBBBCBBBBCCBBBBBBBCBBBBBBBBBBBBBBBCCBBCBCBBCBCBBBCBBBBBBBBBBBBBCBBCBBBBBBBCCCBBBBBBBB...

output:

7330
2 1
1 1
12 18363
11 18363
26 18361
25 18361
28 18360
27 18360
28 18357
27 18357
41 18356
40 18356
42 18355
41 18355
50 18352
49 18352
55 18339
54 18339
69 18333
68 18333
79 18333
78 18333
82 18327
81 18327
83 18326
82 18326
88 18326
87 18326
89 18323
88 18323
91 18316
90 18316
104 18315
103 183...

result:

ok moves = 7330

Test #20:

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

input:

42858 28689
CCCCCCCCCCCCCCCCCCCCBCCCBBCCCBCCCCCCCCCBCCCCCCCBCCCBCCCCCBCCCCCCCCBCCBCCBCCCCCCCCCCCCCCCCCBCCCCCCCCCBCCCCBCCCCCCCCCCCCCCCCCCCCCCCCCCCCBCCCCCCCCCCCCCCCCCBBCCCCCCCCCCCCCCBBCCCBCCCCCCCCCCBCCCCCCCBCCCCBCBCCCBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCBCBCCCBCBCCCCCCCCCCCCCCBCCCCCCCCBCCCCCCCCCCCCCCCCCC...

output:

8086
22 1
21 1
25 42853
24 42853
25 42843
24 42843
28 42821
27 42821
37 42799
36 42799
44 42792
43 42792
47 42773
46 42773
52 42757
51 42757
60 42750
59 42750
62 42748
61 42748
64 42727
63 42727
81 42707
80 42707
90 42698
89 42698
94 42688
93 42688
122 42683
121 42683
139 42683
138 42683
139 42642
1...

result:

ok moves = 8086

Test #21:

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

input:

100002 40466
BBBBBBBCCBCBCCBCBBBBCCBBCBBBBBBBBBBCBBBBCBBBBBCBBBBBBBBBCBBBCBBBCCBCBCBBBBBBCBBBBBBBCBBBBBCBBBBCBCBCBBBBBBBBCBBBBBBBBCBCBBBBCBBBBBBBBBBBBBCBCBBCBBBBBBBBBBBCBBBBBBBCBCBCBCBBBBBBBBCBCBBBBBBBBCBBBBBBBBCBCCBBBCCBBCBBCBBBBBBBBBBCBBBCBBBBBBBBBBBBCBBCCBBCBBCBBBBCBBBBCBBBCCBBBCBBBBBBBCBBBBCBBBC...

output:

45728
9 99999
8 99999
9 99998
8 99998
10 99994
9 99994
11 99989
10 99989
11 99988
10 99988
12 99987
11 99987
16 99978
15 99978
16 99968
15 99968
18 99966
17 99966
28 99964
27 99964
32 99964
31 99964
37 99959
36 99959
46 99958
45 99958
49 99955
48 99955
52 99940
51 99940
52 99940
51 99940
53 99930
52...

result:

ok moves = 45728

Test #22:

score: 0
Accepted
time: 4ms
memory: 10512kb

input:

233338 159967
CCBCBBCCCCBBCCCCCCCCBCCCBCCCCBCCBCCCCCCCCCBCBCCBBCBBCCCCBCCCCCCCCCCCCCCCCCCCBCCBCCBBCBCCBBBCCBCCCCBBCCCBCCCCCCCCCCCBCCBCCCCCCCCBCCCBBCBCCCBCCCCCBCCBCCBCCCCCCCBCCCCCBCCBBCCCCCCCBCCCCCCCCBBBCCCCCCCCCCCCBBBCCCBBCCBCBCCCCCCCCCBCCCCBCCCCCCCCBBCCCCBCCCCBCCCBCCCBCCCCCBCCCCCBBCCCBCCCCCCCCCCCCC...

output:

103344
4 233338
3 233338
5 233336
4 233336
5 233333
4 233333
9 233333
8 233333
9 233332
8 233332
17 233325
16 233325
20 233321
19 233321
24 233321
23 233321
26 233312
25 233312
35 233309
34 233309
36 233309
35 233309
38 233309
37 233309
38 233301
37 233301
39 233300
38 233300
39 233300
38 233300
43 ...

result:

ok moves = 103344

Test #23:

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

input:

300000 1
CCCBBBBBBCCBCCCBCBBBBCBCBCBBCBBBBCBCBCCBBCCBBCCBCBBCBBBBBBCBBBCBCBCCBBCBBCCCCCBCBCBBBBBBBBCBCBBBBCCCBCBBBCCBCBCBCBCBBCCBCBCCCBCBCBBCCBCCBBCBBBBCCBBCBCBBBBCCBBBBBBBCCBCCCBCBCCBBBBBCCBBBBCBCCBCBBCBBCBCCCBBBBBBBCCCCBBBBBBBBCBBBCCBCBBBBCCBBBCCBCBCCBCCBBCBBCCCCCBCBBBCCCCCCBCBBBCBBCCCCCCBCCCBBBCC...

output:

299752
5 1
4 1
5 300000
4 300000
7 299999
6 299999
7 299997
6 299997
9 299996
8 299996
9 299994
8 299994
13 299992
12 299992
17 299991
16 299991
19 299989
18 299989
19 299982
18 299982
21 299980
20 299980
21 299979
20 299979
24 299977
23 299977
26 299974
25 299974
28 299971
27 299971
28 299966
27 29...

result:

ok moves = 299752

Test #24:

score: 0
Accepted
time: 11ms
memory: 19640kb

input:

300000 299999
BBCBCCBBBBCCBBBCBBBCCCBCBCBCCBBCCBBCCBBCCBBBBBCBBCBBBCBBBCCBBCBBBCCCCCCBBCCBCBCBCBBBCCBCBBCCCBBCCCCCBCBCCBBCBBCCBBCCBBBBCBBCBBCCBBCCCCCCCBCBCCCBBBCBBBCCCCBCBBCCCBBCBBBCBBBBCCCCCCBCCCCCCBCBBCBBCBCBCBCCCCBCCBCCCBBCCBBCCCCCBBCCBCCCCBBCBCBCBCCCCBBBCCBCBBBCCBBBCCBBCBCCBCCBCCCCBCCBBBCCBCCBCB...

output:

299728
2 1
1 1
2 300000
1 300000
3 299996
2 299996
5 299996
4 299996
5 299996
4 299996
5 299996
4 299996
5 299993
4 299993
7 299993
6 299993
7 299991
6 299991
7 299990
6 299990
8 299990
7 299990
8 299990
7 299990
8 299989
7 299989
11 299989
10 299989
12 299987
11 299987
13 299987
12 299987
15 299986...

result:

ok moves = 299728

Test #25:

score: 0
Accepted
time: 8ms
memory: 20408kb

input:

299999 1
BBBCCBBCBCCCCBCCCBBBCCBBBBCBCBBCCCCBBCCCCCCBCBBCBBBCCCCCBCBBCCCCBCBCBCCBBCBCCCBCBCCCBBBBBCBCCBBCBCBBBCCBBCCBBCBBBCBCCBCBCCCBCCCCBBCBCBCBBBBCBCCCCBCCCBBCCBCCCBBBCCCCBCCCBBBBBBCCCBCBCBCBCCBCCBBCBBCCBBCBBCCBBBBCCCCBBCBBBCCCBBCBCCBBCCBBBCCBCCCBCCBBBBBCBCBBBCCBCCCBCBBBBBBBBCCBBCBBBCBCBBBCBCCCCCB...

output:

299916
5 1
4 1
5 299999
4 299999
9 299998
8 299998
11 299995
10 299995
11 299993
10 299993
13 299991
12 299991
13 299990
12 299990
16 299987
15 299987
16 299986
15 299986
18 299984
17 299984
22 299983
21 299983
22 299978
21 299978
28 299977
27 299977
30 299976
29 299976
33 299974
32 299974
33 299971...

result:

ok moves = 299916

Test #26:

score: 0
Accepted
time: 15ms
memory: 20404kb

input:

299999 299998
CBBCBBBCBCBBCBCCCCCBCCBBBCBCBCCCBBBBCCBBCBCCCBCBBCCBBBBCCBCBBCCCCBCBBCCBCCCCBCCBCBCCCBBCBBCCBBCCCBBBCCBBCBBBCCCBBCCBCCCCCBBCCCCCBBCCCCBCCBCCBBBCBCCCCBBCBBBCBBBCCCBCCBBCCCBBCBCBBCBCBBCBCCBBBCBBCCCBBCBBCBCCCCBBBBCCCBCCBCBBBCBCCBCBBBBBBBBBCBCBCBBBCCBCCBBBBCCCBBCCBCCBBCCCCBBBBCCCCBBCBCBCBC...

output:

299574
2 299993
1 299993
4 299993
3 299993
7 299993
6 299993
8 299993
7 299993
10 299988
9 299988
11 299988
10 299988
11 299986
10 299986
11 299983
10 299983
11 299982
10 299982
11 299982
10 299982
12 299981
11 299981
12 299980
11 299980
15 299980
14 299980
16 299979
15 299979
17 299979
16 299979
17...

result:

ok moves = 299574

Test #27:

score: 0
Accepted
time: 18ms
memory: 18768kb

input:

300000 2
CCBBBBBBCCCBBCCCBBBCCBBCCBBBBBCBCBBBCCBBCBCCBBCBBBBCBCBBCCBCCCBCBCCBBCBBBCBCBCBBCCCCBBBCBCCCBCCBBBBCCCBCBBBBBCCCCCCBBBCCBBBBCCBBBBBCCCBCBCCCBCCBBCCBCBCBBBCBBCCCCCCBBBBCBBCCCCBCCBCCBCCBBCBBBCCBCCCCBCCBBCBBBCBCCBCCBBBBCBBCBBCBCCBCCCBBCCCCBBBCCBCBBCCBCBBCBBBBBCBBBCBBBBBBCCBBBBCCCBBBBBCCBBCCCBB...

output:

299994
2 299995
1 299995
2 299995
1 299995
10 299992
9 299992
10 299989
9 299989
10 299989
9 299989
15 299987
14 299987
15 299985
14 299985
15 299985
14 299985
21 299982
20 299982
21 299978
20 299978
25 299978
24 299978
25 299975
24 299975
32 299975
31 299975
33 299973
32 299973
38 299973
37 299973
...

result:

ok moves = 299994

Test #28:

score: 0
Accepted
time: 15ms
memory: 19200kb

input:

300000 299998
BBBBBBBCBBBBBBCCCCBBCCCCBCCCCCCBCCBCCCBBCCBBCCCBBCBCCBCBBCCCBCCCBCCBCCCBCCBCBBBCBBCCCCBBCBCCCBCCBBCBCCBCBCCBBBCCBCCBBCBBBBBBCBBBCBBBCCCCCCBBCBCCCCCBBCBBCBCCCBBCBBCBBCCCCCCBBBBCBCCCCCCCCCBCCBCCBCBCCBCBCBBCBCBCCBBCCCCBCCCCCCCCCBCCCBBCCCBBCBBBBBBCBCCBCBCBBBBCCCBBCBBCBBBCBCBBCCCCBCCBBBBCBB...

output:

299714
9 1
8 1
15 300000
14 300000
15 299998
14 299998
15 299998
14 299998
15 299996
14 299996
17 299996
16 299996
17 299996
16 299996
17 299996
16 299996
17 299995
16 299995
18 299995
17 299995
18 299994
17 299994
18 299993
17 299993
18 299993
17 299993
18 299992
17 299992
18 299990
17 299990
19 29...

result:

ok moves = 299714

Test #29:

score: 0
Accepted
time: 13ms
memory: 19340kb

input:

299999 2
CBCCCCBCBBCCBBBBCBCCBBBCBCCBCBCCBCBCBBCCBBBBCCCBBCBCBBCBCCCCBBBCCBCBBCCBBCBCCBBCBBCCBBCCBCCBBBCCCCBBCBBBCCBBBCCBBBCCCBBCBBCBCCCBCBCBBBCBCBBCCBCBCBBBBCCBCBCBBBBBCBCBBCBCBCCBCBCCBCCBBCBBBCBBBBCBCBBBCCBCBBCBBCCBCBCBCCBBBBCBCCBCBCCCCCBBBBBCBCCCCBBCCBBCCCCBBCBBBBBBCBCCBBCBCBCBBBCCCBCCBBBBCCBBCBB...

output:

299818
3 299999
2 299999
8 299999
7 299999
9 299997
8 299997
10 299993
9 299993
14 299991
13 299991
14 299989
13 299989
14 299989
13 299989
17 299987
16 299987
18 299987
17 299987
22 299976
21 299976
22 299973
21 299973
22 299973
21 299973
26 299971
25 299971
29 299968
28 299968
30 299968
29 299968
...

result:

ok moves = 299818

Test #30:

score: 0
Accepted
time: 12ms
memory: 18536kb

input:

299999 299997
CBBBCBCBBBBBCBBCCCCBBCBCBBCBCBBBCCBBBBCCCBBCBBCBCBCCCBBCBBBBCCBCCBBBBBCBCBCBBBBBCBBCCBBBBBCCBCCCCCBCBBBBCCCBBCCCBCCBBCCBBCCBBBBCCBCBBBBCCBCBCCBBCBBBCBCBBCBBCCCCCCCCBCBCCCBCCCCCBCCCCCCCCBBBCCBCCBBCCCCBCCCBBBCBCCCCCCBCBCCBBCBBBCBBCBCBCCBCBCBBBBBBBBCCCBCCBCBCCCCBCCBBBCBCCCBCBCCBCCCBCBBCCC...

output:

299540
2 299999
1 299999
5 299999
4 299999
6 299997
5 299997
11 299997
10 299997
13 299997
12 299997
13 299997
12 299997
13 299996
12 299996
13 299996
12 299996
15 299994
14 299994
16 299994
15 299994
18 299994
17 299994
19 299994
18 299994
22 299993
21 299993
22 299993
21 299993
26 299993
25 299993...

result:

ok moves = 299540

Test #31:

score: 0
Accepted
time: 15ms
memory: 19848kb

input:

300000 3
BBBCBBCBCBBBCBCBBBCCBCCBBBCCBCCBCBCCCCBBBBCBBCCBBBCCBCCBCBCBBBBBBBBCCCBCBBCBBCBBCBBBBCBCCBBBBBCCBBBBCBCBBCCCBBBCBBCCBBBCCCBBCBBBCBBCBCBCBCBCBBCBBCCBBBCCBCBBCCCCBBCBCBCCCCBCCCCBBCCBCCCCBCBBBCBBBCBCCBBCCCCCBCBCCBBBCBBBCCCBCCCCBCCCCCBBCCCBBBBBBBCCBCBCBCCCCCCBBBCCCCCCBCBCCBBBCBCCBBCCCCBCCBCCBCC...

output:

299680
2 299996
1 299996
2 299992
1 299992
2 299991
1 299991
6 299990
5 299990
6 299987
5 299987
7 299982
6 299982
11 299982
10 299982
11 299979
10 299979
11 299978
10 299978
15 299974
14 299974
16 299973
15 299973
16 299972
15 299972
17 299971
16 299971
22 299970
21 299970
24 299963
23 299963
25 29...

result:

ok moves = 299680

Test #32:

score: 0
Accepted
time: 13ms
memory: 20032kb

input:

300000 299997
CCCBCBBCCBCCCBCCCCCBBBCBCBBBCBCBBCBCBBBBCCBBCCBCBBCBBCBBCCCBBCBCCCCBCCCBCCCBBCCBCCCCBBBCBBCBBBCBBCBCCBCBBBBCCCCBCCCBBCBCCBCBCCBCCBCCBCBCCBCCCCBBCCCCBBCCBBCBBCBBBBBBBBBBBCCBCBBCCCBBCCBBCBBBBCBCCBBCCCCBBCBBCCBCBBBCBCCBBBCBBBCCBCBCCCBCCBBBBBBCBCBCBCCBBBBBBBCBCCBBCBCBCCCCCCBBCCBBBBCCBCCCCB...

output:

299862
2 300000
1 300000
2 299998
1 299998
2 299998
1 299998
3 299998
2 299998
5 299996
4 299996
5 299996
4 299996
6 299996
5 299996
6 299996
5 299996
6 299996
5 299996
7 299993
6 299993
7 299993
6 299993
7 299993
6 299993
7 299992
6 299992
7 299992
6 299992
10 299990
9 299990
11 299989
10 299989
14...

result:

ok moves = 299862

Test #33:

score: 0
Accepted
time: 12ms
memory: 19808kb

input:

299999 3
BCBBBCBCCCBCCCBBBBCBBBBBCCBCCCCBCBBBBBBCBBCBCBCBBBBBBCBBBCCCBCBBBBBCCCBCBCBBBBBBBCBBBBBBCBCBBBCCCBCCBCCBCCBBBCCCBCCCBBBBCBCCBBCCCCBCBBBCBCCCBBCBBBBCCCCBCCCCBBBBCCCCCCBBBCCCBBBBCCBBCCBCBCCBBCBBCBBCBCBBBBBCCBBBBBCBBBCCBBBBCCCBBCBBCBBCBCBBCCBBCBBBCBCBCCCBBBBCBBBBBCBBCBBCCCCCCBCCCCBCBBBBBCCCBBC...

output:

299648
3 299997
2 299997
7 299996
6 299996
8 299995
7 299995
8 299994
7 299994
9 299991
8 299991
13 299991
12 299991
13 299991
12 299991
13 299988
12 299988
20 299988
19 299988
26 299988
25 299988
26 299985
25 299985
27 299985
26 299985
29 299985
28 299985
30 299982
29 299982
30 299981
29 299981
34 ...

result:

ok moves = 299648

Test #34:

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

input:

299999 299996
CBBCBCCCBBBCBCBBCBBBBBCBBCCBBCBBCCCBCCBCBCBBCBCCBBCBBBCCCBCBBBBCBCCBCCCCBBCCCCBCBBCBBBBCBBCBCCBBBBCBCCBBBCBBCBBCCCBBCBCCCBCBCCBCBCCBBCBCBCBBBBBCCCBBBBBCCBCBBCCBCBCBBCCCCCCBBCCBBBBBBBCCBCBCBBCBCCBCBBCBBCBCCBBCCBCBCBCBBBBBBBCCBCCBCBCCBBCCBBCBBBBCBBCCBBCCCCBCCBBBBCBCCBBBBCCCCCBCCCBCCBCBCC...

output:

299968
2 299999
1 299999
4 299997
3 299997
5 299997
4 299997
5 299992
4 299992
5 299989
4 299989
8 299989
7 299989
9 299987
8 299987
11 299987
10 299987
16 299986
15 299986
18 299986
17 299986
18 299986
17 299986
20 299985
19 299985
22 299984
21 299984
22 299984
21 299984
22 299981
21 299981
23 2999...

result:

ok moves = 299968

Test #35:

score: 0
Accepted
time: 21ms
memory: 20192kb

input:

300000 4
CBBBBBCBCCBBBCBCBBCBCBBBCBBBCBBCCCBBCBCCCCBBBBCCCBBCBBCCBBCBBCBBCBBBBBCCBBBCBBBCBBCBBBBBBCCCBCCCCBBBBBBBCBBBCBCBCCCBBBCBCCCCBBBBBCBCBCCBCCCCBCCCBBBCCCBBBCCCCBCBCBBBBBCBBCBBBBCCCBCBBCCBBCBCBCCBCBBBBCCBCCBCBCBCBBBCCCBBCBBCCCBBBCCBBBBBCCCCCCCBBBCBCCCCBCBBBCCCBBBCBBCCBCBCBCBCBCCCBCCCCBCCBCCCBBB...

output:

299674
3 1
2 1
3 1
2 1
3 1
2 1
3 299996
2 299996
3 299996
2 299996
9 299996
8 299996
11 299989
10 299989
11 299989
10 299989
12 299988
11 299988
15 299986
14 299986
17 299981
16 299981
17 299977
16 299977
19 299977
18 299977
22 299973
21 299973
23 299973
22 299973
23 299972
22 299972
25 299970
24 29...

result:

ok moves = 299674

Test #36:

score: 0
Accepted
time: 23ms
memory: 18676kb

input:

300000 299996
CBCBCBBCCCCBBCBBCBBBCCCBBCCCCBBCBCCBBCCCCBCBBCCBBBCCCBCBCCCCCCBCCBCBBBBBCBCCBBCCCCCBBBBBCBBCCBBCCCCBBBCBBCCBCBCBBBCCCBCBCCBBBBCCCBCCBCBCBBBCBCCCBBCCBCCCBCBBCCCCCCBBBCCBCBCBBCBBBBCBBBCBBCBBBCCBBBCBCCCCBBCBCCCBBCBCBBCCCCBBCCBBCCBBBCCCBCBBCBBCCCCCBCBCCCBCCCCCCBCBBCBCBCBCBCCBCBBBCBCCCBBBCC...

output:

299466
3 299996
2 299996
4 299996
3 299996
5 299992
4 299992
5 299992
4 299992
9 299992
8 299992
9 299992
8 299992
10 299992
9 299992
10 299991
9 299991
11 299991
10 299991
11 299991
10 299991
11 299988
10 299988
14 299988
13 299988
14 299984
13 299984
18 299982
17 299982
18 299982
17 299982
19 2999...

result:

ok moves = 299466

Test #37:

score: 0
Accepted
time: 16ms
memory: 20284kb

input:

299999 4
BBBCCBBBBCCCBCCCBCCCCBBBBBCBCCCBCBCBCCCBBBBBBBCBBBBCBBBBCBCCBCCCCCCBCCBBBCCCCCBBBCBCCBBBCBCBBCBCBCBCBBCBCBBBCBCBBBCCCCBCBBCCCBBBBCBBBBBBBBCCBCCBBCBBCCCCBCBCBBCBBCBBCBCBBBCCCCCCBBBBBBCBCBCCCCCCBBCBBCBBBCCBBBBBBBCBBBBBBCBCCBCBCCCCBBCCCCBBBBCCBCBBCCBCCCBCBCBBCCCCBBCBBBCBCBCCBBCBCBCCCCCBBCBCCCC...

output:

299540
5 1
4 1
5 299999
4 299999
11 299999
10 299999
11 299995
10 299995
11 299995
10 299995
12 299990
11 299990
15 299985
14 299985
16 299984
15 299984
17 299984
16 299984
18 299983
17 299983
19 299979
18 299979
20 299977
19 299977
28 299973
27 299973
29 299971
28 299971
29 299969
28 299969
29 2999...

result:

ok moves = 299540

Test #38:

score: 0
Accepted
time: 9ms
memory: 20536kb

input:

299999 299995
BBBBCCCBBBBBBBBCCBCBCBBBBCCCCBBCCCBBBBBCBBBCBBBCCBBCCCCBCBCBCCCCBBCBBCCBBBCBBBCBBBBBBBBCCBBCBBBBBBBCCCBCCBBBCBCBCCBBCBBCBCBBBBCBCBBCBCBCBBCCCBCCBCBCCBBBCBBCBCCBBCBCBBBBCCBCBCBCCCCBCCCBCBCCBCCCCBBBBBBCBCBCBCBCCBCBBBCCBBBCCBCBCCCBBBBBCCCBCCBCBCBCCCCBBCCCBBBBBCBBCCBBCBCCBBCCBBBBBBBCCCBCBC...

output:

299896
6 1
5 1
6 1
5 1
6 299998
5 299998
14 299998
13 299998
14 299995
13 299995
15 299995
14 299995
16 299994
15 299994
20 299994
19 299994
20 299994
19 299994
20 299994
19 299994
20 299989
19 299989
22 299988
21 299988
22 299988
21 299988
22 299988
21 299988
27 299987
26 299987
30 299987
29 299987...

result:

ok moves = 299896

Test #39:

score: 0
Accepted
time: 15ms
memory: 18668kb

input:

300000 3210
CCBBCBBCCBBBBCBBCBBCCCBCCCBBBBBCBBCBBCBCBCCBBCBBBCCCCCBBCCCCCCCCBBCBBBBBCCCBBCBBBBCCBBBCCCCBBBBBBCBBBCBBCCBBCCCBCBCCCCCCBCBBBCBCBBBCCCBCBCCCCBCBBCCBBBBBCBBBBCBBCBBCCCBCCBCCCBBCCBCCCCCCCCBCCBBCBBBBBBCBBBBBCBBCBCCBBBCBBCBCCBBBCCCCBCCBBBBBCBCBBCBBBBBBBBBCCCCBCBCCBCCCCCBBBCBBBCCBBCCCCCBBBCBC...

output:

299636
4 1
3 1
4 1
3 1
5 1
4 1
5 300000
4 300000
7 299994
6 299994
7 299991
6 299991
7 299990
6 299990
7 299989
6 299989
8 299989
7 299989
8 299988
7 299988
9 299986
8 299986
9 299986
8 299986
12 299986
11 299986
15 299986
14 299986
15 299986
14 299986
15 299985
14 299985
15 299983
14 299983
15 2999...

result:

ok moves = 299636

Test #40:

score: 0
Accepted
time: 17ms
memory: 19156kb

input:

300000 296790
BBCCBBCBCBBCCCCBBBCBBBCCCBBCCCCBCCCCBCCCBBCCBCBBBBBBBBCBCBCBCBCCBCBBCBBBBCBCBCCCCBBBBCCBCCBCCCCCCCCBBCBCBCBCCCBCCBCCBCBCBCCBCCBCBBBCCCCCBBBCCBCCCBBBBBCCBBCCBBCCCBCBBCBCCCBCBBCCBCBCCCCBCBBCBBBBCCCCBBCCBCCCBCBCBBBCBBCBBCBBBBBBCCCBBBCCBCCBBCCCCBBBCBBBCBCBCBBCBCBBBBCCCCBCBBCCBBBCBCBCCBBCBB...

output:

299960
4 299999
3 299999
4 299998
3 299998
6 299996
5 299996
7 299996
6 299996
9 299994
8 299994
9 299993
8 299993
9 299987
8 299987
9 299987
8 299987
12 299987
11 299987
15 299987
14 299987
15 299987
14 299987
15 299987
14 299987
17 299987
16 299987
17 299986
16 299986
17 299986
16 299986
17 299986...

result:

ok moves = 299960

Test #41:

score: 0
Accepted
time: 15ms
memory: 18652kb

input:

299999 3210
CBCBCBBCCCBBBBCCBCBCCCBBCBBCBBCBCCCCBCBCCCCBBBCBBBBCBCBCCBCBBBCBCBBCCBCCBBCCCCBCCBCCBBBBCBCCCBBBBCCBCCCCBCBCBBCCBBBBCCBBCCBBCBCBCCBCBCBBCCBCCCCCBCBBBBBBCBCCCCBCBBCCCCCCBBCCCCCBCBCBBCBCCBBCCBCCBBBBCBBCCCCCCBBCBBCCCCCBCCBBBBBBCBCCCCBCBBCBCBBBBBCCCCCBBBBCCCBCBBBBBCBCBBCBBBBBBCCCCCBBBBCCCBBB...

output:

299944
2 299996
1 299996
3 299993
2 299993
4 299993
3 299993
6 299993
5 299993
6 299992
5 299992
6 299992
5 299992
10 299988
9 299988
10 299986
9 299986
11 299985
10 299985
12 299985
11 299985
12 299984
11 299984
12 299980
11 299980
14 299978
13 299978
16 299978
15 299978
18 299978
17 299978
19 2999...

result:

ok moves = 299944

Test #42:

score: 0
Accepted
time: 24ms
memory: 19544kb

input:

299999 296789
CCCBBCCCCCCCBCBCBBCBBCCBBCBBCBCCBBBCCBBCCBBCCBCBCCBBCBBBCBCBCCBBCBCBCCBBBCBCBCBBBCCCBCBBCBBBCBBCBBBBBCBBCCBCCCCCCCCBBCCCCCCCBCCBBBBCCBBBCBCBBCCBCCCCBCCCCCCBCCBBBBBCCBBBBCBBBCBBCCBCCCCCCBCCBBCBBCBBCCCBBBCBBBCBCBBBBBCBCBBCCBCBBCBBBCCBCBBCBBBCBCBBBBBCCBBBBCCCCCBCBBBBCBCCCCBBBCCBBBCCCCCCBB...

output:

299914
5 1
4 1
5 299998
4 299998
12 299998
11 299998
13 299997
12 299997
14 299997
13 299997
14 299997
13 299997
15 299997
14 299997
15 299997
14 299997
17 299996
16 299996
17 299996
16 299996
18 299996
17 299996
18 299996
17 299996
19 299996
18 299996
21 299996
20 299996
21 299995
20 299995
21 2999...

result:

ok moves = 299914

Test #43:

score: 0
Accepted
time: 11ms
memory: 19328kb

input:

300000 98765
BBCBBCCBCBBBBCBCCCBBCBCBCCBCBBBBBCCBCBCBCCBCCCCCBCCCBCBBBBCCBCCBCCBBBCCBCCCCBBBCBCCCCCBCBCCCBBBCCBBBBCCCCBBBCBBBBBCBBCBCCCBCCBCCCCBBCBBBBBCCCBBBCCCBBBBBCCCBBBBBBBBCCCCCCBCBBBBBCBCBBCCBCBBCCBCBCCCBBCCBBBBCBCCBCBCBCCCCCBCBBCBCBBCBBBBBBBCCBBBCCBCCBCBCBBCCCCBCBBBBCBBCBCBCBBBBBBBBCCCBBBBCCCB...

output:

299684
2 299999
1 299999
2 299999
1 299999
3 299998
2 299998
3 299998
2 299998
5 299997
4 299997
6 299997
5 299997
6 299997
5 299997
6 299997
5 299997
6 299997
5 299997
7 299995
6 299995
10 299994
9 299994
10 299994
9 299994
11 299994
10 299994
12 299991
11 299991
14 299991
13 299991
15 299991
14 29...

result:

ok moves = 299684

Test #44:

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

input:

300000 201235
BBCCCBBBBCCCCCBBBBBBCCBBBBCCCBBBBCBBBCBBBBCBCBBBCCCBBCBCCBCBCBBBCBBBCCCCBBCCBBBCBBCBCCCCBBCBCCCBBCCCCCCBCBBCCCBCCBBBBCBBBCCCCBBCCBBCCCCBCCCBCBBBCCCBBCBBCCCBCBBCBCBCCBBBBBBCBCCCBBBCBCBBBBBBBCCCBCCCBBCBBBCCBCBBCBBCCBCCBBCBBBBCBBBBBBCBCBBCCBCCBCCCBCCBBCBBCCCCCBBCCCBCBCBCCCCBCBBCBCBCBCCCBB...

output:

299440
2 300000
1 300000
2 300000
1 300000
5 300000
4 300000
5 299997
4 299997
5 299997
4 299997
5 299994
4 299994
10 299994
9 299994
10 299994
9 299994
10 299992
9 299992
10 299990
9 299990
10 299990
9 299990
10 299989
9 299989
12 299989
11 299989
12 299989
11 299989
12 299989
11 299989
12 299989
1...

result:

ok moves = 299440

Test #45:

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

input:

299999 98765
CCBBCCBCBCBCBCCBBBCBCBBCCBBCBCCCBCBBCBBBCBCBCBCBBCBCCBCBBCCCBBBCCCBBCBBCCBBCBBBBCCBBBBBBBCCCCCBBBCBCCCCBCBBCBBBCBBCBCBCBCBBCCBCCCBCBCBCBBCBBCBBBCCCCCCBBCCBBBBCCBCCBBBCBCCBBCCBCCBBBBCBBBCCCCCCCCBCBCCCCCCBCCCBBCBBCBCCCBCCCCCCBBCBCBCCBBBBCBBCBBBCCCBCCCBCBCBBCBCCCBBBCBCBBCCCCCCCBBBCCCBCBCCC...

output:

299904
2 1
1 1
2 299994
1 299994
4 299994
3 299994
4 299994
3 299994
5 299992
4 299992
6 299992
5 299992
7 299991
6 299991
8 299991
7 299991
8 299990
7 299990
11 299986
10 299986
12 299986
11 299986
14 299985
13 299985
14 299984
13 299984
16 299982
15 299982
17 299982
16 299982
17 299980
16 299980
1...

result:

ok moves = 299904

Test #46:

score: 0
Accepted
time: 14ms
memory: 19784kb

input:

299999 201234
CCBBCCCBCBCBCBBBCCBCBCCBCCCCCCBCBCBBBBCBCCCBCBBCCCBBBBCBBBCBCBBBCCBCCCCCCBCCBCBCBCBCBBBCCBCBCCCBBBCBCBCBBBBBBCBBBCBCBBCBBCCBBBBCBCCBBBBCCCCCCCCCCBBBCCBCCBCCBBCBCBBCBBBBCCCBBBBCBCCBCCBBCCCBCCCBBBCCCBCCBCBBBBCCCBBCCCBCCCCBBBCBCCBCCCCCBCBBCCCCBBCBCBCCBCBBBBBCCBBCCBBCBBCCBCCBBCCBCBCCBBBBBB...

output:

299526
2 299998
1 299998
2 299997
1 299997
4 299996
3 299996
4 299996
3 299996
4 299996
3 299996
5 299995
4 299995
6 299994
5 299994
7 299993
6 299993
10 299993
9 299993
10 299992
9 299992
11 299992
10 299992
12 299990
11 299990
12 299990
11 299990
13 299987
12 299987
13 299987
12 299987
13 299985
1...

result:

ok moves = 299526

Test #47:

score: 0
Accepted
time: 23ms
memory: 18760kb

input:

300000 150000
CBBBBCCBCBBBBCBBBCBCBCBBCBBBBCBBCCBCCCBBBBCBCBBBBBBCCCCCCBCBBCCBCBCBBCBCBBBBBBCBCBBBBCCBCCCBBCCCBBCCCBBBBCCCCCBCCBCBBCCCCBCBBBBBBBBBBBBBBBCBBBCBBBBCBBBCCCBCBCCBBBCBBCCCCCCBBBCBBCBCBCBBCBCCCCBCCCCCCCCCBCCCBCBBBBBBBCBBCBBBBBBCCBBBBCCCCCCBBBCCCCCBCBCBBCBBCBCBCBBBCBBCCCBCCBCCBCBCBCBBBBBCBC...

output:

299434
2 300000
1 300000
6 300000
5 300000
6 300000
5 300000
7 300000
6 300000
11 300000
10 300000
14 299998
13 299998
15 299994
14 299994
16 299994
15 299994
18 299993
17 299993
22 299993
21 299993
24 299987
23 299987
24 299985
23 299985
25 299985
24 299985
25 299981
24 299981
25 299976
24 299976
2...

result:

ok moves = 299434

Test #48:

score: 0
Accepted
time: 11ms
memory: 19324kb

input:

300000 150000
BCCCCCCBCBBCCBBBBCBCCBCBCBCBCCCBCBCBBBCCCBCBBBCBBBBBBCBCBCCCBCCCBCCBBBBBCBCCCBCBCCCBCCBBCCBBBCBBBCBBCBCCBBBCBCCCBCBBCBCCCCBCCCCCBBCBCBCBBBCCBBCCBCCBCBBCCBBCCBBBBCCCBBCCBBBBBCCBCCBBBBBCBBCCBCCBBBCBBBBBBCCBBCCBBCBCBCCCBCBCCCBCBCBCBCCCBCCCCCBCCCCCBBBBBCCCCCBCBCCBCBBCCCCCBCBBCCBCBCBBCCBBCB...

output:

299902
2 1
1 1
8 1
7 1
9 1
8 1
9 299999
8 299999
11 299999
10 299999
11 299999
10 299999
11 299998
10 299998
11 299993
10 299993
12 299991
11 299991
14 299991
13 299991
15 299991
14 299991
16 299989
15 299989
17 299989
16 299989
20 299989
19 299989
21 299989
20 299989
22 299988
21 299988
22 299983
2...

result:

ok moves = 299902

Test #49:

score: 0
Accepted
time: 13ms
memory: 19124kb

input:

299999 150000
BCBCBBBBCCBCCCCCBCCBCBBCCBCBBBBBCBBBBCBBBCCCBCBBBBBBBBCCCBCCCBBCBBBCCCBBCBBCBBBCCBBCCBCCBBBCBBBCBBBBCCCCBBBBBCCCBCCBCBBBCBCCBCBCBCBBBCBCCCBBCCCCBCBBCCBBCCBCBCCBCCCCBCCCBCCBCCBBBCBCBCCBBCCBBCBBCCCCBCBBCCBCCBBBCBCBBBCCBCCCBBBBCBCBBCBBBCBCBBCCBCCBCCCBCCBCBCBCCBCBCCCBCCBBBCBBBCCBBCCBCBBCBC...

output:

299908
2 299999
1 299999
3 299994
2 299994
4 299991
3 299991
4 299990
3 299990
4 299990
3 299990
4 299989
3 299989
6 299988
5 299988
11 299988
10 299988
13 299987
12 299987
14 299986
13 299986
14 299983
13 299983
16 299981
15 299981
17 299979
16 299979
17 299978
16 299978
17 299978
16 299978
17 2999...

result:

ok moves = 299908

Test #50:

score: 0
Accepted
time: 4ms
memory: 20204kb

input:

299999 149999
CCCCBBBCBCBCCCBBCBBBCCCBBBBCCCBCBBCBBBBCCCCBBBCBBCCBCCCCCCCCBCCCBCBBCBBCBCBCCCCCCCBBBBBCBBCBCBCBBCCCBCBCCBBCBBBCCCCCBBBCCCBBCBBBBCCBCBBCBCCBCBCCBBCBBCBBCCBCCBBCCBBBCCCBCCCBCCCBBCCCCCBCBBCCCBCBCCBBBCCBCCCCBBCCBCCCCBCCCBBCBCCBBBCCCBCCBCCCCCCCBCCBBBCBBCCBBBCCBCBCBCBCCCBCBBCCBCBCBBCCCBCCCC...

output:

299948
6 299999
5 299999
6 299999
5 299999
6 299998
5 299998
7 299997
6 299997
8 299997
7 299997
11 299997
10 299997
11 299996
10 299996
12 299996
11 299996
12 299995
11 299995
12 299995
11 299995
15 299994
14 299994
15 299992
14 299992
15 299992
14 299992
15 299991
14 299991
18 299991
17 299991
19 ...

result:

ok moves = 299948

Test #51:

score: 0
Accepted
time: 14ms
memory: 18724kb

input:

300000 150001
CBBCCCBBCBBBCCCCBCCCBBBCBBCBCCBBCBCCBCBCCBBBCBCBBBBCCBCBBCCBCCBBCBCCCCCCCCBBCCCCBBCBBCCBBCBBCBBCBBCBBCBBBCBBBBCBBBBCBBBBBCBCBBBCBBCCCBBBBCCBBBBCCBBBCBBCCBCBCBCBBBBBBCCBBCCCCCBBBCBCBBCCBCCCCBBBCBBBBCCCCCCCBBCCCCBBCBBCCBBBCBBCBCCCCBBCBCCBBCBCCBCBBCCBBBCBCCCCBBBBCBBBBBBBBBCCCBBBBCBBBCCBCC...

output:

299890
2 1
1 1
4 299998
3 299998
4 299998
3 299998
4 299998
3 299998
6 299998
5 299998
9 299997
8 299997
9 299996
8 299996
9 299996
8 299996
9 299994
8 299994
10 299994
9 299994
10 299994
9 299994
10 299993
9 299993
13 299993
12 299993
15 299993
14 299993
16 299992
15 299992
16 299992
15 299992
18 2...

result:

ok moves = 299890

Test #52:

score: 0
Accepted
time: 7ms
memory: 19088kb

input:

300000 149999
BBBBCBBCCCBCCBBCBCCCCBBCCBBCBCBBBCCBCCBCCCBBBBCBCCCCBCCBBCCCCCCBCCCBBBCCCBCCCBCCCBCCBCBCCCCBBCCCBBCBCBBBCBCBBBBBBCBCCBCBCCCBBBBBBCCBCCBCCBBBCBCBBBBBCCBBBCCCBBBBBBBBCCCBCCCBCCBBCBCBCCBCCBCCBCBBBCCCCBCCCBCBBBCCBBCBCBBCCBCCBBCBCCBBBBCCCCBCBBCCCCBBBBCCBCCCCBCCCCBBCBBBBBCCBCBCCCBCBCCBCBCCCC...

output:

299656
2 1
1 1
2 1
1 1
2 1
1 1
2 1
1 1
3 1
2 1
3 1
2 1
6 300000
5 300000
8 300000
7 300000
8 300000
7 300000
9 300000
8 300000
13 300000
12 300000
13 300000
12 300000
15 299997
14 299997
15 299995
14 299995
16 299995
15 299995
17 299995
16 299995
17 299994
16 299994
17 299994
16 299994
19 299992
18 ...

result:

ok moves = 299656

Test #53:

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

input:

299999 150001
BCBCBCBBCBCBBCBCCCCCBCBCBBBCCCBCBCBCBCCBCCBBBCCBCCCCBCCBCCBBCBCBBCBCBCBBBBBCCBBBBCCBCBCBCCBBCBCCCBCBBCBCBBCBBBBCBBBCBBCBBBBCCBCBCCBCBCCBBCBCBCBBBCBBCCBBBCBBBBBCCCBBCBBBCBBBBCCBBCBCCBBCCBCBBCBBCBBBBBCBCBCBBBBBBBBCCBCBCCBBBBCBBCBBBCCCCCBBCBBBBCCCBCBCBCBCBCBCCCBBCBBCCBCCBCBCBBBBBBCCBCBBBC...

output:

299792
3 299999
2 299999
4 299998
3 299998
5 299996
4 299996
7 299996
6 299996
8 299996
7 299996
10 299996
9 299996
11 299996
10 299996
11 299996
10 299996
11 299996
10 299996
11 299996
10 299996
11 299995
10 299995
12 299991
11 299991
13 299991
12 299991
16 299985
15 299985
16 299985
15 299985
16 2...

result:

ok moves = 299792

Test #54:

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

input:

299999 149998
CBCCBCBCBCCBCCCCCBBCBCBCCCBCCCBBCBCBCCBBCBBCBBBCBBCCBCCBBCBBBBCCCBBCCBCBBBBBBBCBCCBBBCBBCCCCBBCBBCBCBCCBBCCCBCCCBBBCCBCBCBCBBBCBCCBBBCBCBCBCCCBCCBCCCBCCCCBCCBBCBBCBCCCCCBBCCCBBCBBCBBBCCBBCBCBCCBCBBCCBBBBBBBBBCCCBCCBBCCCCBBCBCCBCCCCCBBCCBCBCCBCCBCCBCBBBCBCCCCBBBBCBBBCBBCBBCCCBCBCBCBBBCB...

output:

299972
3 299999
2 299999
5 299999
4 299999
6 299999
5 299999
7 299999
6 299999
9 299999
8 299999
14 299999
13 299999
14 299996
13 299996
15 299996
14 299996
16 299996
15 299996
19 299996
18 299996
22 299996
21 299996
22 299996
21 299996
23 299996
22 299996
24 299987
23 299987
26 299987
25 299987
26 ...

result:

ok moves = 299972

Test #55:

score: 0
Accepted
time: 11ms
memory: 15380kb

input:

262143 194294
CBBBCCCBCBBBCBBCBCBCBCCBCCCBCBCCCBCCCCBCBBBCCCCBCCCCBBBBCBBCBCCBCBCCCBCCCBCCCBBBBCCCCCCCCBBCCBBCBCBBBBCBCCBBBBCCCBCBCBCCBCCCBCBCBCBBBBBBBCBBCCCCBBCCBCBCBBCBCCCBCBBBCCBBBBCBCCBCCCCCBCBBBBCBBBBBBBBBBBCBBCBCBCBBCCBCCBBCBCCCBBBBCCBCCBBBBCBCCCBBBCBCBCCCBCCBBBCCBBCBCCBBBCCBBCCCBCCCBCBBBCCCBC...

output:

262120
2 262143
1 262143
5 262139
4 262139
5 262137
4 262137
5 262137
4 262137
6 262137
5 262137
9 262136
8 262136
11 262133
10 262133
12 262132
11 262132
13 262131
12 262131
14 262130
13 262130
14 262129
13 262129
15 262129
14 262129
15 262129
14 262129
15 262129
14 262129
16 262129
15 262129
17 26...

result:

ok moves = 262120

Test #56:

score: 0
Accepted
time: 7ms
memory: 15260kb

input:

262144 149222
BBCCBCCCCCBCCCCCBCCBCBBCBCBCBBCCCCCBBBBBBBCCCBBBCCCCCBCBBCBCBCCCCCBCBBBBBBBCCCCBCBCBCBBBBBCBBBBCCBCCCBCCBCBCCCBBBCCCCCCBCCBBBCCBCBBBBCCCBBBCBCBBCBCCBCBCBBBCCBBCBBCBCCCCBCCCCBBCCCBCBCBCBBBCCCBCCBCCCCBCCCBCBCCBBBCBCBBCBCCBBCBBBBBBBBBBCBCBBBBCCCBCBCCCBBBBCCCBBBBCBBBCBCCCBBBCBCBBCBCBCCCCBC...

output:

261936
4 1
3 1
4 262143
3 262143
5 262139
4 262139
5 262138
4 262138
5 262138
4 262138
5 262138
4 262138
5 262138
4 262138
6 262135
5 262135
6 262135
5 262135
6 262134
5 262134
6 262133
5 262133
6 262132
5 262132
7 262128
6 262128
7 262128
6 262128
8 262126
7 262126
10 262124
9 262124
11 262124
10 2...

result:

ok moves = 261936

Test #57:

score: 0
Accepted
time: 13ms
memory: 15356kb

input:

262145 120549
BCBCBCCBCBBBBBCBBBCBCBCCCBBCCCCCCCCBCCCCCBBCCBCBBBBCCCBCBBCBBCCCCBCCCCBBBBCCBCBCBBBBCBBCBCBCBCCCBBCBBCCCBCCBBCCCBBCBCCCCCBCCCBCBCCBBCCBCCCBCBCCCCCBCBCBCBBCBCCCCBCBBCCBCCBCCCBBCBCBBBBCCCCCBBCBCCBBBBCCCCCCCBCBBCCCBBCCBBBBCCBBCBBCBBBCBCCBBBBBBBBBBBBBCBBCBBCBCCBBBBBBCBBBBBBBCBBCCCBBBBBCBCB...

output:

261964
2 262140
1 262140
3 262140
2 262140
4 262139
3 262139
6 262139
5 262139
7 262135
6 262135
7 262135
6 262135
7 262135
6 262135
7 262132
6 262132
7 262131
6 262131
8 262131
7 262131
8 262130
7 262130
8 262130
7 262130
9 262130
8 262130
10 262130
9 262130
13 262128
12 262128
13 262128
12 262128
...

result:

ok moves = 261964

Test #58:

score: 0
Accepted
time: 21ms
memory: 19576kb

input:

299997 265881
CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB...

output:

299996
2 1
1 1
3 299997
2 299997
4 299996
3 299996
5 299995
4 299995
6 299994
5 299994
7 299993
6 299993
8 299992
7 299992
9 299991
8 299991
10 299990
9 299990
11 299989
10 299989
12 299988
11 299988
13 299987
12 299987
14 299986
13 299986
15 299985
14 299985
16 299984
15 299984
17 299983
16 299983
...

result:

ok moves = 299996

Test #59:

score: 0
Accepted
time: 7ms
memory: 19824kb

input:

299998 76325
BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCB...

output:

299998
2 299998
1 299998
3 299997
2 299997
4 299996
3 299996
5 299995
4 299995
6 299994
5 299994
7 299993
6 299993
8 299992
7 299992
9 299991
8 299991
10 299990
9 299990
11 299989
10 299989
12 299988
11 299988
13 299987
12 299987
14 299986
13 299986
15 299985
14 299985
16 299984
15 299984
17 299983
...

result:

ok moves = 299998

Test #60:

score: 0
Accepted
time: 7ms
memory: 20244kb

input:

299999 236065
BCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC...

output:

299998
3 1
2 1
4 299999
3 299999
5 299998
4 299998
6 299997
5 299997
7 299996
6 299996
8 299995
7 299995
9 299994
8 299994
10 299993
9 299993
11 299992
10 299992
12 299991
11 299991
13 299990
12 299990
14 299989
13 299989
15 299988
14 299988
16 299987
15 299987
17 299986
16 299986
18 299985
17 29998...

result:

ok moves = 299998

Test #61:

score: 0
Accepted
time: 9ms
memory: 19624kb

input:

300000 46255
CBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBCBC...

output:

300000
3 300000
2 300000
4 299999
3 299999
5 299998
4 299998
6 299997
5 299997
7 299996
6 299996
8 299995
7 299995
9 299994
8 299994
10 299993
9 299993
11 299992
10 299992
12 299991
11 299991
13 299990
12 299990
14 299989
13 299989
15 299988
14 299988
16 299987
15 299987
17 299986
16 299986
18 29998...

result:

ok moves = 300000

Test #62:

score: 0
Accepted
time: 8ms
memory: 19192kb

input:

299997 56982
BBCCBCBBCBCCBCBBCCBBCBCCBBCCBCBBCCBBCBCCBCBBCBCCBBCCBCBBCBCCBCBBCCBBCBCCBCBBCBCCBBCCBCBBCCBBCBCCBBCCBCBBCBCCBCBBCCBBCBCCBCBBCBCCBBCCBCBBCBCCBCBBCCBBCBCCBBCCBCBBCCBBCBCCBCBBCBCCBBCCBCBBCCBBCBCCBBCCBCBBCBCCBCBBCCBBCBCCBBCCBCBBCCBBCBCCBCBBCBCCBBCCBCBBCBCCBCBBCCBBCBCCBCBBCBCCBBCCBCBBCCBBCBC...

output:

299996
4 299997
3 299997
4 299997
3 299997
5 299996
4 299996
7 299994
6 299994
8 299993
7 299993
8 299993
7 299993
9 299992
8 299992
11 299990
10 299990
11 299990
10 299990
13 299988
12 299988
14 299987
13 299987
14 299987
13 299987
16 299986
15 299986
16 299984
15 299984
17 299983
16 299983
19 2999...

result:

ok moves = 299996

Test #63:

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

input:

299998 129345
CCBBCCBCBBCCBBCBCCBBCCBCBBCBCCBCBBCCBBCBCCBBCCBCBBCCBBCBCCBCBBCBCCBBCCBCBBCBCCBCBBCCBBCBCCBCBBCBCCBBCCBCBBCCBBCBCCBBCCBCBBCBCCBCBBCCBBCBCCBCBBCBCCBBCCBCBBCBCCBCBBCCBBCBCCBBCCBCBBCCBBCBCCBCBBCBCCBBCCBCBBCBCCBCBBCCBBCBCCBCBBCBCCBBCCBCBBCCBBCBCCBBCCBCBBCBCCBCBBCCBBCBCCBBCCBCBBCCBBCBCCBCBB...

output:

299998
4 1
3 1
4 1
3 1
6 299997
5 299997
7 299996
6 299996
7 299996
6 299996
9 299994
8 299994
9 299994
8 299994
10 299993
9 299993
12 299991
11 299991
12 299991
11 299991
14 299989
13 299989
15 299988
14 299988
15 299988
14 299988
16 299987
15 299987
18 299985
17 299985
19 299984
18 299984
19 29998...

result:

ok moves = 299998

Test #64:

score: 0
Accepted
time: 16ms
memory: 20072kb

input:

299999 265635
CBCBBCCBBCBCCBCBBCBCCBBCCBCBBCBCCBCBBCCBBCBCCBBCCBCBBCCBBCBCCBCBBCBCCBBCCBCBBCCBBCBCCBBCCBCBBCBCCBCBBCCBBCBCCBBCCBCBBCCBBCBCCBCBBCBCCBBCCBCBBCBCCBCBBCCBBCBCCBCBBCBCCBBCCBCBBCCBBCBCCBBCCBCBBCBCCBCBBCCBBCBCCBCBBCBCCBBCCBCBBCBCCBCBBCCBBCBCCBBCCBCBBCCBBCBCCBCBBCBCCBBCCBCBBCBCCBCBBCCBBCBCCB...

output:

299998
3 1
2 1
4 299999
3 299999
4 299997
3 299997
6 299997
5 299997
6 299995
5 299995
7 299994
6 299994
9 299994
8 299994
10 299993
9 299993
10 299991
9 299991
11 299990
10 299990
13 299990
12 299990
13 299988
12 299988
15 299988
14 299988
16 299987
15 299987
16 299985
15 299985
17 299984
16 299984...

result:

ok moves = 299998

Test #65:

score: 0
Accepted
time: 13ms
memory: 18916kb

input:

300000 172035
BBCCBCBBCCBBCBCCBBCCBCBBCBCCBCBBCCBBCBCCBBCCBCBBCCBBCBCCBCBBCBCCBBCCBCBBCBCCBCBBCCBBCBCCBCBBCBCCBBCCBCBBCCBBCBCCBBCCBCBBCBCCBCBBCCBBCBCCBBCCBCBBCCBBCBCCBCBBCBCCBBCCBCBBCCBBCBCCBBCCBCBBCBCCBCBBCCBBCBCCBCBBCBCCBBCCBCBBCBCCBCBBCCBBCBCCBBCCBCBBCCBBCBCCBCBBCBCCBBCCBCBBCCBBCBCCBBCCBCBBCBCCBC...

output:

300000
2 1
1 1
2 1
1 1
4 299999
3 299999
5 299999
4 299999
5 299998
4 299998
7 299996
6 299996
7 299996
6 299996
8 299994
7 299994
10 299993
9 299993
10 299993
9 299993
12 299992
11 299992
13 299990
12 299990
13 299989
12 299989
14 299989
13 299989
16 299987
15 299987
17 299987
16 299987
17 299986
1...

result:

ok moves = 300000

Test #66:

score: 0
Accepted
time: 3ms
memory: 9592kb

input:

300000 143374
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB...

output:

0

result:

ok moves = 0

Test #67:

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

input:

300000 59002
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...

output:

0

result:

ok moves = 0

Test #68:

score: 0
Accepted
time: 4ms
memory: 9524kb

input:

299999 85730
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB...

output:

0

result:

ok moves = 0

Test #69:

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

input:

299999 52075
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...

output:

0

result:

ok moves = 0

Test #70:

score: 0
Accepted
time: 3ms
memory: 9356kb

input:

300000 234800
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB...

output:

2
153043 61314
153042 61314

result:

ok moves = 2

Test #71:

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

input:

300000 24663
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...

output:

2
187616 271844
187615 271844

result:

ok moves = 2

Test #72:

score: 0
Accepted
time: 7ms
memory: 9372kb

input:

299999 82421
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB...

output:

2
175079 70453
175078 70453

result:

ok moves = 2

Test #73:

score: 0
Accepted
time: 11ms
memory: 9332kb

input:

299999 103379
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...

output:

2
285283 219999
285282 219999

result:

ok moves = 2

Extra Test:

score: 0
Extra Test Passed