QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#393657#8554. Bot Friendsucup-team180AC ✓138ms199324kbC++1730.9kb2024-04-19 01:38:162024-04-19 01:38:17

Judging History

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

  • [2024-04-19 01:38:17]
  • 评测
  • 测评结果:AC
  • 用时:138ms
  • 内存:199324kb
  • [2024-04-19 01:38:16]
  • 提交

answer

#pragma region Macros
#ifdef noimi
#pragma comment(linker, "/stack:256000000")
#include "my_template.hpp"
#else
// #pragma GCC target("avx2")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")

#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 <immintrin.h>
#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 <tuple>
#include <type_traits>
#include <utility>
#include <variant>

#ifdef noimi
#define oj_local(a, b) b
#else
#define oj_local(a, b) a
#endif

#define LOCAL if(oj_local(0, 1))
#define OJ if(oj_local(1, 0))

using namespace std;
using ll = long long;
using ull = unsigned long long int;
using i128 = __int128_t;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
using ld = long double;
template <typename T> using vc = vector<T>;
template <typename T> using vvc = vector<vc<T>>;
template <typename T> using vvvc = vector<vvc<T>>;
using vi = vc<int>;
using vl = vc<ll>;
using vpi = vc<pii>;
using vpl = vc<pll>;
template <class T> using pq = priority_queue<T>;
template <class T> using pqg = priority_queue<T, vector<T>, greater<T>>;
template <typename T> int si(const T &x) { return x.size(); }
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); }
vi iota(int n) {
    vi a(n);
    return iota(a.begin(), a.end(), 0), a;
}
template <typename T> vi iota(const vector<T> &a, bool greater = false) {
    vi res(a.size());
    iota(res.begin(), res.end(), 0);
    sort(res.begin(), res.end(), [&](int i, int j) {
        if(greater) return a[i] > a[j];
        return a[i] < a[j];
    });
    return res;
}

// macros
#define overload5(a, b, c, d, e, name, ...) name
#define overload4(a, b, c, d, name, ...) name
#define endl '\n'
#define REP0(n) for(ll jidlsjf = 0; jidlsjf < n; ++jidlsjf)
#define REP1(i, n) for(ll i = 0; i < (n); ++i)
#define REP2(i, a, b) for(ll i = (a); i < (b); ++i)
#define REP3(i, a, b, c) for(ll i = (a); i < (b); i += (c))
#define rep(...) overload4(__VA_ARGS__, REP3, REP2, REP1, REP0)(__VA_ARGS__)
#define per0(n) for(int jidlsjf = 0; jidlsjf < (n); ++jidlsjf)
#define per1(i, n) for(ll i = (n)-1; i >= 0; --i)
#define per2(i, a, b) for(ll i = (a)-1; i >= b; --i)
#define per3(i, a, b, c) for(ll i = (a)-1; i >= (b); i -= (c))
#define per(...) overload4(__VA_ARGS__, per3, per2, per1, per0)(__VA_ARGS__)
#define fore0(a) rep(a.size())
#define fore1(i, a) for(auto &&i : a)
#define fore2(a, b, v) for(auto &&[a, b] : v)
#define fore3(a, b, c, v) for(auto &&[a, b, c] : v)
#define fore4(a, b, c, d, v) for(auto &&[a, b, c, d] : v)
#define fore(...) overload5(__VA_ARGS__, fore4, fore3, fore2, fore1, fore0)(__VA_ARGS__)
#define setbits(j, n) for(ll iiiii = (n), j = lowbit(iiiii); iiiii; iiiii ^= 1 << j, j = lowbit(iiiii))
#define perm(v) for(bool permrepflag = true; (permrepflag ? exchange(permrepflag, false) : next_permutation(all(v)));)
#define fi first
#define se second
#define pb push_back
#define ppb pop_back
#define ppf pop_front
#define eb emplace_back
#define drop(s) cout << #s << endl, exit(0)
#define si(c) (int)(c).size()
#define lb(c, x) distance((c).begin(), lower_bound(all(c), (x)))
#define lbg(c, x) distance((c).begin(), lower_bound(all(c), (x), greater{}))
#define ub(c, x) distance((c).begin(), upper_bound(all(c), (x)))
#define ubg(c, x) distance((c).begin(), upper_bound(all(c), (x), greater{}))
#define rng(v, l, r) v.begin() + (l), v.begin() + (r)
#define all(c) begin(c), end(c)
#define rall(c) rbegin(c), rend(c)
#define SORT(v) sort(all(v))
#define REV(v) reverse(all(v))
#define UNIQUE(x) SORT(x), x.erase(unique(all(x)), x.end())
template <typename T = ll, typename S> T SUM(const S &v) { return accumulate(all(v), T(0)); }
#define MIN(v) *min_element(all(v))
#define MAX(v) *max_element(all(v))
#define overload2(_1, _2, name, ...) name
#define vec(type, name, ...) vector<type> name(__VA_ARGS__)
#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__))))
constexpr pii dx4[4] = {pii{1, 0}, pii{0, 1}, pii{-1, 0}, pii{0, -1}};
constexpr pii dx8[8] = {{1, 0}, {1, 1}, {0, 1}, {-1, 1}, {-1, 0}, {-1, -1}, {0, -1}, {1, -1}};

namespace yesno_impl {
const string YESNO[2] = {"NO", "YES"};
const string YesNo[2] = {"No", "Yes"};
const string yesno[2] = {"no", "yes"};
const string firstsecond[2] = {"second", "first"};
const string FirstSecond[2] = {"Second", "First"};
const string possiblestr[2] = {"impossible", "possible"};
const string Possiblestr[2] = {"Impossible", "Possible"};
void YES(bool t = 1) { cout << YESNO[t] << endl; }
void NO(bool t = 1) { YES(!t); }
void Yes(bool t = 1) { cout << YesNo[t] << endl; }
void No(bool t = 1) { Yes(!t); }
void yes(bool t = 1) { cout << yesno[t] << endl; }
void no(bool t = 1) { yes(!t); }
void first(bool t = 1) { cout << firstsecond[t] << endl; }
void First(bool t = 1) { cout << FirstSecond[t] << endl; }
void possible(bool t = 1) { cout << possiblestr[t] << endl; }
void Possible(bool t = 1) { cout << Possiblestr[t] << endl; }
}; // namespace yesno_impl
using namespace yesno_impl;

#define INT(...)                                                                                                                                               \
    int __VA_ARGS__;                                                                                                                                           \
    IN(__VA_ARGS__)
#define INTd(...)                                                                                                                                              \
    int __VA_ARGS__;                                                                                                                                           \
    IN2(__VA_ARGS__)
#define LL(...)                                                                                                                                                \
    ll __VA_ARGS__;                                                                                                                                            \
    IN(__VA_ARGS__)
#define LLd(...)                                                                                                                                               \
    ll __VA_ARGS__;                                                                                                                                            \
    IN2(__VA_ARGS__)
#define STR(...)                                                                                                                                               \
    string __VA_ARGS__;                                                                                                                                        \
    IN(__VA_ARGS__)
#define CHR(...)                                                                                                                                               \
    char __VA_ARGS__;                                                                                                                                          \
    IN(__VA_ARGS__)
#define DBL(...)                                                                                                                                               \
    double __VA_ARGS__;                                                                                                                                        \
    IN(__VA_ARGS__)
#define VEC(type, name, size)                                                                                                                                  \
    vector<type> name(size);                                                                                                                                   \
    IN(name)
#define VECd(type, name, size)                                                                                                                                 \
    vector<type> name(size);                                                                                                                                   \
    IN2(name)
#define VEC2(type, name1, name2, size)                                                                                                                         \
    vector<type> name1(size), name2(size);                                                                                                                     \
    for(int i = 0; i < size; i++) IN(name1[i], name2[i])
#define VEC2d(type, name1, name2, size)                                                                                                                        \
    vector<type> name1(size), name2(size);                                                                                                                     \
    for(int i = 0; i < size; i++) IN2(name1[i], name2[i])
#define VEC3(type, name1, name2, name3, size)                                                                                                                  \
    vector<type> name1(size), name2(size), name3(size);                                                                                                        \
    for(int i = 0; i < size; i++) IN(name1[i], name2[i], name3[i])
#define VEC3d(type, name1, name2, name3, size)                                                                                                                 \
    vector<type> name1(size), name2(size), name3(size);                                                                                                        \
    for(int i = 0; i < size; i++) IN2(name1[i], name2[i], name3[i])
#define VEC4(type, name1, name2, name3, name4, size)                                                                                                           \
    vector<type> name1(size), name2(size), name3(size), name4(size);                                                                                           \
    for(int i = 0; i < size; i++) IN(name1[i], name2[i], name3[i], name4[i]);
#define VEC4d(type, name1, name2, name3, name4, size)                                                                                                          \
    vector<type> name1(size), name2(size), name3(size), name4(size);                                                                                           \
    for(int i = 0; i < size; i++) IN2(name1[i], name2[i], name3[i], name4[i]);
#define VV(type, name, h, w)                                                                                                                                   \
    vector<vector<type>> name(h, vector<type>(w));                                                                                                             \
    IN(name)
#define VVd(type, name, h, w)                                                                                                                                  \
    vector<vector<type>> name(h, vector<type>(w));                                                                                                             \
    IN2(name)
int scan() { return getchar(); }
void scan(int &a) { cin >> a; }
void scan(long long &a) { cin >> a; }
void scan(char &a) { cin >> a; }
void scan(double &a) { cin >> a; }
void scan(string &a) { cin >> a; }
template <class T, class S> void scan(pair<T, S> &p) { scan(p.first), scan(p.second); }
template <class T> void scan(vector<T> &);
template <class T> void scan(vector<T> &a) {
    for(auto &i : a) scan(i);
}
template <class T> void scan(T &a) { cin >> a; }
void IN() {}
void IN2() {}
template <class Head, class... Tail> void IN(Head &head, Tail &...tail) {
    scan(head);
    IN(tail...);
}
template <class Head, class... Tail> void IN2(Head &head, Tail &...tail) {
    scan(head);
    --head;
    IN2(tail...);
}

template <int p = -1> void pat() {}
template <int p = -1, class Head, class... Tail> void pat(Head &h, Tail &...tail) {
    h += p;
    pat<p>(tail...);
}

template <typename T, typename S> T ceil(T x, S y) {
    assert(y);
    return (y < 0 ? ceil(-x, -y) : (x > 0 ? (x + y - 1) / y : x / y));
}

template <typename T, typename S> T floor(T x, S y) {
    assert(y);
    return (y < 0 ? floor(-x, -y) : (x > 0 ? x / y : x / y - (x % y == 0 ? 0 : 1)));
}
template <typename T, typename S, typename U> U bigmul(const T &x, const S &y, const U &lim) { // clamp(x * y, -lim, lim)
    if(x < 0 and y < 0) return bigmul(-x, -y, lim);
    if(x < 0) return -bigmul(-x, y, lim);
    if(y < 0) return -bigmul(x, -y, lim);
    return y == 0 or x <= lim / y ? x * y : lim;
}
template <class T> T POW(T x, int n) {
    T res = 1;
    for(; n; n >>= 1, x *= x)
        if(n & 1) res *= x;
    return res;
}
template <class T, class S> T POW(T x, S n, const ll &mod) {
    T res = 1;
    x %= mod;
    for(; n; n >>= 1, x = x * x % mod)
        if(n & 1) res = res * x % mod;
    return res;
}
vector<pll> factor(ll x) {
    vector<pll> ans;
    for(ll i = 2; i * i <= x; i++)
        if(x % i == 0) {
            ans.push_back({i, 1});
            while((x /= i) % i == 0) ans.back().second++;
        }
    if(x != 1) ans.push_back({x, 1});
    return ans;
}
template <class T> vector<T> divisor(T x) {
    vector<T> ans;
    for(T i = 1; i * i <= x; i++)
        if(x % i == 0) {
            ans.pb(i);
            if(i * i != x) ans.pb(x / i);
        }
    return ans;
}
template <typename T> void zip(vector<T> &x) {
    vector<T> y = x;
    UNIQUE(y);
    for(int i = 0; i < x.size(); ++i) { x[i] = lb(y, x[i]); }
}
template <class S> void fold_in(vector<S> &v) {}
template <typename Head, typename... Tail, class S> void fold_in(vector<S> &v, Head &&a, Tail &&...tail) {
    for(auto e : a) v.emplace_back(e);
    fold_in(v, tail...);
}
template <class S> void renumber(vector<S> &v) {}
template <typename Head, typename... Tail, class S> void renumber(vector<S> &v, Head &&a, Tail &&...tail) {
    for(auto &&e : a) e = lb(v, e);
    renumber(v, tail...);
}
template <class S, class... Args> vector<S> zip(vector<S> &head, Args &&...args) {
    vector<S> v;
    fold_in(v, head, args...);
    sort(all(v)), v.erase(unique(all(v)), v.end());
    renumber(v, head, args...);
    return v;
}

template <typename S> void rearrange(const vector<S> &id) {}
template <typename S, typename T> void rearrange_exec(const vector<S> &id, vector<T> &v) {
    vector<T> w(v.size());
    rep(i, si(id)) w[i] = v[id[i]];
    v.swap(w);
}
// 並び替える順番, 並び替える vector 達
template <typename S, typename Head, typename... Tail> void rearrange(const vector<S> &id, Head &a, Tail &...tail) {
    rearrange_exec(id, a);
    rearrange(id, tail...);
}

template <typename T> vector<T> RUI(const vector<T> &v) {
    vector<T> res(v.size() + 1);
    for(int i = 0; i < v.size(); i++) res[i + 1] = res[i] + v[i];
    return res;
}
template <typename T> void zeta_supersetsum(vector<T> &f) {
    int n = f.size();
    for(int i = 1; i < n; i <<= 1) rep(b, n) if(!(i & b)) f[b] += f[b | i];
}

template <typename T> void zeta_subsetsum(vector<T> &f) {
    int n = f.size();
    for(int i = 1; i < n; i <<= 1) rep(b, n) if(!(i & b)) f[b | i] += f[b];
}
template <typename T> void mobius_subset(vector<T> &f) {
    int n = f.size();
    for(int i = 1; i < n; i <<= 1) rep(b, n) if(!(i & b)) f[b] -= f[b | i];
}
template <typename T> void mobius_superset(vector<T> &f) {
    int n = f.size();
    for(int i = 1; i < n; i <<= 1) rep(b, n) if(!(i & b)) f[b | i] -= f[b];
}
// 反時計周りに 90 度回転
template <typename T> void rot(vector<vector<T>> &v) {
    if(empty(v)) return;
    int n = v.size(), m = v[0].size();
    vector<vector<T>> res(m, vector<T>(n));
    rep(i, n) rep(j, m) res[m - 1 - j][i] = v[i][j];
    v.swap(res);
}

vector<int> counter(const vector<int> &v, int max_num = -1) {
    if(max_num == -1) max_num = MAX(v);
    vector<int> res(max_num + 1);
    fore(e, v) res[e]++;
    return res;
}

// x in [l, r)
template <class T, class S> bool inc(const T &x, const S &l, const S &r) { return l <= x and x < r; }
template <class T, class S> bool inc(const T &x, const pair<S, S> &p) { return p.first <= x and x < p.second; }

// 便利関数
constexpr ll ten(int n) { return n == 0 ? 1 : ten(n - 1) * 10; }
constexpr ll tri(ll n) { return n * (n + 1) / 2; }
// l + ... + r
constexpr ll tri(ll l, ll r) { return (l + r) * (r - l + 1) / 2; }
ll max(int x, ll y) { return max((ll)x, y); }
ll max(ll x, int y) { return max(x, (ll)y); }
int min(int x, ll y) { return min((ll)x, y); }
int min(ll x, int y) { return min(x, (ll)y); }
// bit 演算系
#define bit(i) (1LL << i)       // (1 << i)
#define test(b, i) (b >> i & 1) // b の i bit 目が立っているか
ll pow2(int i) { return 1LL << i; }
int topbit(signed t) { return t == 0 ? -1 : 31 - __builtin_clz(t); }
int topbit(ll t) { return t == 0 ? -1 : 63 - __builtin_clzll(t); }
// int lowbit(signed a) { return a == 0 ? 32 : __builtin_ctz(a); }
int lowbit(ull a) { return a == 0 ? 64 : __builtin_ctzll(a); }
// int allbit(int n) { return (1 << n) - 1; }
constexpr ll mask(int n) { return (1LL << n) - 1; }
// int popcount(signed t) { return __builtin_popcount(t); }
// int popcount(ll t) { return __builtin_popcountll(t); }
int popcount(uint64_t t) { return __builtin_popcountll(t); }
static inline uint64_t popcount64(uint64_t x) {
    uint64_t m1 = 0x5555555555555555ll;
    uint64_t m2 = 0x3333333333333333ll;
    uint64_t m4 = 0x0F0F0F0F0F0F0F0Fll;
    uint64_t h01 = 0x0101010101010101ll;

    x -= (x >> 1) & m1;
    x = (x & m2) + ((x >> 2) & m2);
    x = (x + (x >> 4)) & m4;

    return (x * h01) >> 56;
}
bool ispow2(int i) { return i && (i & -i) == i; }

ll rnd(ll l, ll r) { //[l, r)
#ifdef noimi
    static mt19937_64 gen;
#else
    static mt19937_64 gen(chrono::steady_clock::now().time_since_epoch().count());
#endif
    return uniform_int_distribution<ll>(l, r - 1)(gen);
}
ll rnd(ll n) { return rnd(0, n); }

template <class t> void random_shuffle(vc<t> &a) { rep(i, si(a)) swap(a[i], a[rnd(0, i + 1)]); }

int in() {
    int x;
    cin >> x;
    return x;
}
ll lin() {
    unsigned long long x;
    cin >> x;
    return x;
}

template <class T, class S> pair<T, S> operator-(const pair<T, S> &x) { return pair<T, S>(-x.first, -x.second); }
template <class T, class S> pair<T, S> operator-(const pair<T, S> &x, const pair<T, S> &y) { return pair<T, S>(x.fi - y.fi, x.se - y.se); }
template <class T, class S> pair<T, S> operator+(const pair<T, S> &x, const pair<T, S> &y) { return pair<T, S>(x.fi + y.fi, x.se + y.se); }
template <class T> pair<T, T> operator&(const pair<T, T> &l, const pair<T, T> &r) { return pair<T, T>(max(l.fi, r.fi), min(l.se, r.se)); }
template <class T, class S> pair<T, S> operator+=(pair<T, S> &l, const pair<T, S> &r) { return l = l + r; }
template <class T, class S> pair<T, S> operator-=(pair<T, S> &l, const pair<T, S> &r) { return l = l - r; }
template <class T> bool intersect(const pair<T, T> &l, const pair<T, T> &r) { return (l.se < r.se ? r.fi < l.se : l.fi < r.se); }

template <class T> vector<T> &operator++(vector<T> &v) {
    fore(e, v) e++;
    return v;
}
template <class T> vector<T> operator++(vector<T> &v, int) {
    auto res = v;
    fore(e, v) e++;
    return res;
}
template <class T> vector<T> &operator--(vector<T> &v) {
    fore(e, v) e--;
    return v;
}
template <class T> vector<T> operator--(vector<T> &v, int) {
    auto res = v;
    fore(e, v) e--;
    return res;
}
template <class T> void connect(vector<T> &l, const vector<T> &r) { fore(e, r) l.eb(e); }
template <class T> vector<T> operator+(const vector<T> &l, const vector<T> &r) {
    vector<T> res(max(si(l), si(r)));
    rep(i, si(l)) res[i] += l[i];
    rep(i, si(r)) res[i] += r[i];
    return res;
}
template <class T> vector<T> operator-(const vector<T> &l, const vector<T> &r) {
    vector<T> res(max(si(l), si(r)));
    rep(i, si(l)) res[i] += l[i];
    rep(i, si(r)) res[i] -= r[i];
    return res;
}
template <class T> vector<T> &operator+=(const vector<T> &l, const vector<T> &r) {
    if(si(l) < si(r)) l.resize(si(r));
    rep(i, si(r)) l[i] += r[i];
    return l;
}
template <class T> vector<T> &operator-=(const vector<T> &l, const vector<T> &r) {
    if(si(l) < si(r)) l.resize(si(r));
    rep(i, si(r)) l[i] -= r[i];
    return l;
}
template <class T> vector<T> &operator+=(vector<T> &v, const T &x) {
    fore(e, v) e += x;
    return v;
}
template <class T> vector<T> &operator-=(vector<T> &v, const T &x) {
    fore(e, v) e -= x;
    return v;
}

template <typename T> struct edge {
    int from, to;
    T cost;
    int id;
    edge(int to, T cost) : from(-1), to(to), cost(cost) {}
    edge(int from, int to, T cost) : from(from), to(to), cost(cost) {}
    edge(int from, int to, T cost, int id) : from(from), to(to), cost(cost), id(id) {}
    constexpr bool operator<(const edge<T> &rhs) const noexcept { return cost < rhs.cost; }
    edge &operator=(const int &x) {
        to = x;
        return *this;
    }
    operator int() const { return to; }
    friend ostream operator<<(ostream &os, const edge &e) { return os << e.to; }
};
template <typename T> using Edges = vector<edge<T>>;

template <typename T = int> Edges<T> read_edges(int m, bool weighted = false) {
    Edges<T> res;
    res.reserve(m);
    for(int i = 0; i < m; i++) {
        int u, v, c = 0;
        scan(u), scan(v), u--, v--;
        if(weighted) scan(c);
        res.eb(u, v, c, i);
    }
    return res;
}

using Tree = vector<vector<int>>;
using Graph = vector<vector<int>>;
template <class T> using Wgraph = vector<vector<edge<T>>>;
Graph getG(int n, int m = -1, bool directed = false, int margin = 1) {
    Tree res(n);
    if(m == -1) m = n - 1;
    while(m--) {
        int a, b;
        cin >> a >> b;
        a -= margin, b -= margin;
        res[a].emplace_back(b);
        if(!directed) res[b].emplace_back(a);
    }
    return res;
}
Graph getTreeFromPar(int n, int margin = 1) {
    Graph res(n);
    for(int i = 1; i < n; i++) {
        int a;
        cin >> a;
        res[a - margin].emplace_back(i);
    }
    return res;
}
template <class T> Wgraph<T> getWg(int n, int m = -1, bool directed = false, int margin = 1) {
    Wgraph<T> res(n);
    if(m == -1) m = n - 1;
    while(m--) {
        int a, b;
        T c;
        scan(a), scan(b), scan(c);
        a -= margin, b -= margin;
        res[a].emplace_back(b, c);
        if(!directed) res[b].emplace_back(a, c);
    }
    return res;
}
void add(Graph &G, int x, int y) { G[x].eb(y), G[y].eb(x); }
template <class S, class T> void add(Wgraph<S> &G, int x, int y, T c) { G[x].eb(y, c), G[y].eb(x, c); }

#define TEST                                                                                                                                                   \
    INT(testcases);                                                                                                                                            \
    while(testcases--)

i128 abs(const i128 &x) { return x > 0 ? x : -x; }
istream &operator>>(istream &is, i128 &v) {
    string s;
    is >> s;
    v = 0;
    for(int i = 0; i < (int)s.size(); i++) {
        if(isdigit(s[i])) { v = v * 10 + s[i] - '0'; }
    }
    if(s[0] == '-') { v *= -1; }
    return is;
}

ostream &operator<<(ostream &os, const i128 &v) {
    if(v == 0) { return (os << "0"); }
    i128 num = v;
    if(v < 0) {
        os << '-';
        num = -num;
    }
    string s;
    for(; num > 0; num /= 10) { s.push_back((char)(num % 10) + '0'); }
    reverse(s.begin(), s.end());
    return (os << s);
}
namespace aux {
template <typename T, unsigned N, unsigned L> struct tp {
    static void output(std::ostream &os, const T &v) {
        os << std::get<N>(v) << (&os == &cerr ? ", " : " ");
        tp<T, N + 1, L>::output(os, v);
    }
};
template <typename T, unsigned N> struct tp<T, N, N> {
    static void output(std::ostream &os, const T &v) { os << std::get<N>(v); }
};
} // namespace aux
template <typename... Ts> std::ostream &operator<<(std::ostream &os, const std::tuple<Ts...> &t) {
    if(&os == &cerr) { os << '('; }
    aux::tp<std::tuple<Ts...>, 0, sizeof...(Ts) - 1>::output(os, t);
    if(&os == &cerr) { os << ')'; }
    return os;
}
template <typename T, typename S, typename U> std::ostream &operator<<(std::ostream &os, const priority_queue<T, S, U> &_pq) {
    auto pq = _pq;
    vector<T> res;
    while(!empty(pq)) res.emplace_back(pq.top()), pq.pop();
    return os << res;
}
template <class T, class S> ostream &operator<<(ostream &os, const pair<T, S> &p) {
    if(&os == &cerr) { return os << "(" << p.first << ", " << p.second << ")"; }
    return os << p.first << " " << p.second;
}
template <class Ch, class Tr, class Container> std::basic_ostream<Ch, Tr> &operator<<(std::basic_ostream<Ch, Tr> &os, const Container &x) {
    bool f = true;
    if(&os == &cerr) os << "[";
    for(auto &y : x) {
        if(&os == &cerr)
            os << (f ? "" : ", ") << y;
        else
            os << (f ? "" : " ") << y;
        f = false;
    }
    if(&os == &cerr) os << "]";
    return os;
}

#define dump(...) static_cast<void>(0)
#define dbg(...) static_cast<void>(0)

void OUT() { cout << endl; }
template <class Head, class... Tail> void OUT(const Head &head, const Tail &...tail) {
    cout << head;
    if(sizeof...(tail)) cout << ' ';
    OUT(tail...);
}

template <typename T> static constexpr T inf = numeric_limits<T>::max() / 2;
template <class T, class S> constexpr pair<T, S> inf<pair<T, S>> = {inf<T>, inf<S>};

template <class T> void OUT2(const T &t, T INF = inf<T>, T res = -1) { OUT(t != INF ? t : res); }
template <class T> void OUT2(vector<T> &v, T INF = inf<T>, T res = -1) {
    fore(e, v) if(e == INF) e = res;
    OUT(v);
    fore(e, v) if(e == res) e = INF;
}

template <class F> struct REC {
    F f;
    REC(F &&f_) : f(forward<F>(f_)) {}
    template <class... Args> auto operator()(Args &&...args) const { return f(*this, forward<Args>(args)...); }
};

template <class S> vector<pair<S, int>> runLength(const vector<S> &v) {
    vector<pair<S, int>> res;
    for(auto &e : v) {
        if(res.empty() or res.back().fi != e)
            res.eb(e, 1);
        else
            res.back().se++;
    }
    return res;
}
vector<pair<char, int>> runLength(const string &v) {
    vector<pair<char, int>> res;
    for(auto &e : v) {
        if(res.empty() or res.back().fi != e)
            res.eb(e, 1);
        else
            res.back().se++;
    }
    return res;
}

struct string_converter {
    char start = 0;
    char type(const char &c) const { return (islower(c) ? 'a' : isupper(c) ? 'A' : isdigit(c) ? '0' : 0); }
    int convert(const char &c) {
        if(!start) start = type(c);
        return c - start;
    }
    int convert(const char &c, const string &chars) { return chars.find(c); }
    template <typename T> auto convert(const T &v) {
        vector<decltype(convert(v[0]))> ret;
        ret.reserve(size(v));
        for(auto &&e : v) ret.emplace_back(convert(e));
        return ret;
    }
    template <typename T> auto convert(const T &v, const string &chars) {
        vector<decltype(convert(v[0], chars))> ret;
        ret.reserve(size(v));
        for(auto &&e : v) ret.emplace_back(convert(e, chars));
        return ret;
    }
    int operator()(const char &v, char s = 0) {
        start = s;
        return convert(v);
    }
    int operator()(const char &v, const string &chars) { return convert(v, chars); }
    template <typename T> auto operator()(const T &v, char s = 0) {
        start = s;
        return convert(v);
    }
    template <typename T> auto operator()(const T &v, const string &chars) { return convert(v, chars); }
} toint;

template <class T, class F> T bin_search(T ok, T ng, const F &f) {
    while(abs(ok - ng) > 1) {
        T mid = ok + ng >> 1;
        (f(mid) ? ok : ng) = mid;
    }
    return ok;
}
template <class T, class F> T bin_search_double(T ok, T ng, const F &f, int iter = 80) {
    while(iter--) {
        T mid = (ok + ng) / 2;
        (f(mid) ? ok : ng) = mid;
    }
    return ok;
}

struct Setup_io {
    Setup_io() {
        ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
        cout << fixed << setprecision(11);
    }
} setup_io;

#endif

#pragma endregion

int dp[5001][5001][2];

int main() {
    TEST {
        STR(s);
        auto a = toint(s, "<>?");
        int n = si(a);
        rep(i, n + 1) rep(j, n + 1) rep(k, 2) dp[i][j][k] = -inf<int>;
        vi dp2(n + 1);
        rep(i, n) {
            chmax(dp2[i + 1], dp2[i]);
            if(a[i] != 0) {
                chmax(dp[i + 1][1][0], dp2[i]);
                rep(j, i + 1) {
                    chmax(dp[i + 1][j][0], dp[i][j][1]);
                    if(j < n) {
                        chmax(dp[i + 1][j + 1][0], dp[i][j][0]);
                        chmax(dp[i + 1][j + 1][0], dp[i][j][1] - 1);
                    }
                }
            }
            if(a[i] != 1) {
                rep(j, i + 1) {
                    chmax(dp[i + 1][j][1], dp[i][j][0] + 1);
                    if(j > 1) {
                        chmax(dp[i + 1][j - 1][1], dp[i][j][0] + 2);
                        chmax(dp[i + 1][j - 1][1], dp[i][j][1] + 2);
                    } else {
                        chmax(dp2[i + 1], dp[i][j][0] + 1);
                        chmax(dp2[i + 1], dp[i][j][1] + 1);
                    }
                }
            }
        }
        // rep(i, n + 1) dump(i, dp[i]);
        // dump(dp2);
        int ma = dp2[n];
        rep(j, n + 1) rep(k, 2) chmax(ma, dp[n][j][k]);
        OUT(ma);
    }
}

// >>>>><><<<

// >><>><<<<<

// 1 2 1 2 3 0 0 2

这程序好像有点Bug,我给组数据试试?

详细

Test #1:

score: 100
Accepted
time: 1ms
memory: 3892kb

input:

10
?>?
>?<
??<?
?><?<
??????
>?<?<>?<?<
?><???><><
??>>><><??
<>>?>>?>?>
<?<>>??<?>

output:

2
2
3
4
5
8
7
8
5
6

result:

ok 10 numbers

Test #2:

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

input:

100000
>?<?<>?<?<
?><???><><
??>>><><??
<>>?>>?>?>
<?<>>??<?>
>><>><<<<<
>?>?>?<<>>
?><?<<?<><
???><>?>?>
<??>?<<><?
??>><?<>>>
<><><?<>>?
?>>?>???><
?<?><?<<>?
>>><?<??><
><><<>?>?<
>?><>><<<?
>??>?><?<>
?????<><?>
<><<?<<>?<
><?>>?>?>?
?><><<<>>?
?<>?<>?<<<
<><<<<<>>>
?>?>?><<>>
<>?<>><>?<
<<<?<>>...

output:

8
7
8
5
6
8
6
7
6
7
6
6
8
7
8
7
8
7
7
6
6
7
7
2
6
6
3
9
6
6
5
7
5
8
7
6
8
7
8
6
6
7
4
2
7
6
8
7
8
6
6
5
7
8
8
8
8
7
5
6
7
7
6
8
8
6
8
6
7
8
7
7
6
8
5
7
6
6
5
5
7
7
6
4
8
6
6
7
5
7
6
7
7
8
3
8
8
7
8
7
7
4
8
8
7
5
8
7
7
8
8
7
5
7
8
5
7
6
5
8
8
7
7
8
6
7
8
6
6
8
7
8
7
6
6
5
7
8
6
8
6
7
5
7
4
6
6
7
7
7
...

result:

ok 100000 numbers

Test #3:

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

input:

100000
<<<<>>>>><
>>>><<<><<
>><?>><<<<
<><><<>?<>
><>?>>?<><
<<<<><><><
>>>??<><><
<<><?>?<<<
>?<<<><<<<
<<>><<><><
<>?<<<<>><
>>?>>>><>>
?>><<?<<<<
>>>><><??<
><<<<<><<<
><???<>><>
<<<<><<<>>
?<>>?>?<<<
<><>><><>>
<>><<<<>><
<<>><<<<>>
><><<<<?<<
><<<<<><>>
>>>><<><?>
><>>?><?<<
??<?<??<<?
<<<<><<...

output:

2
8
8
5
7
3
7
6
6
5
6
4
8
8
4
6
2
8
4
6
4
6
3
7
8
8
3
4
5
7
5
8
7
6
5
6
5
5
6
6
5
7
3
4
7
6
6
5
8
7
5
3
6
4
6
6
3
4
6
6
8
6
6
6
7
4
4
6
6
6
1
5
4
7
6
5
6
4
4
4
5
5
4
6
8
7
4
6
4
4
5
4
7
8
6
6
6
6
4
7
5
6
4
6
6
7
4
2
5
5
6
5
6
6
5
6
4
4
3
8
5
7
5
6
6
6
5
5
7
8
7
5
4
4
5
6
7
5
3
5
5
3
7
7
2
7
6
8
7
2
...

result:

ok 100000 numbers

Test #4:

score: 0
Accepted
time: 114ms
memory: 3940kb

input:

100000
>>>??><<>?<>??>><>?<
>><<>????<<<>?>>?<<<
<>>??><><>>?>>?><>?>
<<<<><>><>>>???>>>?<
<>>>?<>>>?<><??<<<>>
>><><><><?<>>><>??><
>?<>?????<?<<><<<<>>
?><<>?>??>>>??<><<?<
>>><>?<?>>?<?<??>?><
<>>?<<?>???><?><><>?
<>?<?>?>?<>?<????>?<
<??<>?<>><<?<?????<<
>?>?<><>?<><><>>>??>
>?<??>?<??>>>>><><?<...

output:

15
17
12
12
14
13
15
17
15
14
15
15
13
16
15
16
15
15
17
15
15
10
16
12
14
16
17
16
11
14
13
14
13
14
14
10
12
11
15
13
16
13
13
13
16
10
14
16
12
12
13
14
14
16
17
13
15
15
11
17
15
15
16
15
17
15
16
14
14
13
11
15
14
17
15
17
17
15
13
17
16
16
16
14
17
14
12
14
13
15
16
12
15
16
14
15
13
16
15
14
...

result:

ok 100000 numbers

Test #5:

score: 0
Accepted
time: 93ms
memory: 3748kb

input:

100000
<<>?>>?<>?<>><<<<<><
<>>><<>><><><><<>?>>
><>?<<>><>?<>>><><<>
>>>><?><<<<><<<?><<<
>>?<><>>?>??<>><<>><
>>?><<?<<><?><<<<>>>
><?<<><>><<?<?>><>?<
<><<<?<><<<<<<<>><><
<<><><><>><<<>>>><><
>>>><<?<><<<<><<<>>>
<<<><>><<><<>?<<<<>>
><>><>>><>><>?<><??<
?<<><?>><><><><<><><
<>>><><<><?<<<>><><>...

output:

14
11
13
16
15
14
14
9
11
13
11
14
12
13
14
16
10
13
15
12
11
10
8
13
13
11
16
13
14
13
10
14
13
14
13
15
11
11
14
13
12
13
11
11
13
12
10
13
15
13
13
14
6
14
14
8
11
8
14
12
11
10
12
14
14
13
10
13
9
15
16
7
11
14
12
12
12
12
12
15
12
14
10
13
11
14
13
14
14
11
9
12
13
11
12
11
11
16
13
11
13
15
15...

result:

ok 100000 numbers

Test #6:

score: 0
Accepted
time: 127ms
memory: 3756kb

input:

100000
?>???<<><>?>?>>>><<>?
?>?>>?>><<><??<?<?>??
<><<?>>?<>?<>>?><????
>?<<<?><?>?><>>><>><<
<???>?<>???<><<<<<??>
><<?<<<<<<<<<<<?>><<?
?<?>><?<?>?<>??><><><
?>?<?>>>><<?>??><>>>>
><<<????>>><>>>><<??>
<??><??>><<?<?<>>?><>
>><>>>><>>?<?<>?>><>>
??<?<<><?>?>>>??><>?>
>?<<<?<?><<??><>>?<??
<<>?<?>...

output:

15
18
16
15
16
9
15
13
15
15
14
14
16
16
18
14
16
14
19
16
11
13
14
15
14
17
12
14
14
12
15
16
16
15
18
15
15
16
17
16
14
17
17
15
13
16
14
14
13
16
15
14
16
16
18
14
15
14
15
14
13
17
13
17
13
16
15
15
17
18
18
15
13
15
17
15
17
14
16
14
15
12
16
16
14
17
17
16
18
14
15
14
18
15
15
16
17
15
16
19
1...

result:

ok 100000 numbers

Test #7:

score: 0
Accepted
time: 104ms
memory: 3748kb

input:

100000
<><><><<>><>>><>?<<?>
<><<>><>>>>><>><<>?<?
>?<<>>><>>>><?<<<>><<
>>>><<<<<<>><>>>><<>>
<<>>><<>><<?><?>>>><<
<<<<><??><<><>>>?>?>>
>><><>?>><><<<>>><<>?
><<<>>><<><<><><><>><
>>><>>?><<<<?><<<<<?<
?<>>><<><<><><<>><<><
<<><<<><<<<>>>>>>>>>>
<?<><<>><><>>><<>>><>
<<>><><>>><><>>><<><<
><<><<>...

output:

13
15
17
14
14
10
15
13
18
14
4
12
13
13
12
15
14
14
14
12
14
15
14
10
12
11
15
6
14
14
14
12
17
14
12
16
13
14
13
8
12
14
13
14
12
15
14
14
14
12
17
17
15
12
14
15
13
12
13
16
13
16
16
14
15
15
17
11
14
13
11
12
12
10
14
14
15
12
12
15
13
14
14
12
15
15
15
10
15
16
15
13
16
14
14
10
18
10
14
11
8
1...

result:

ok 100000 numbers

Test #8:

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

input:

100000
??><>?<?><<<<>>??>><<<
?<><><<??<<<>><?><>?<>
<><<>?><>?>><>??>?<<?>
>>><??<?<>>>>>><??><<?
>?<<><??<>?>>?<<?>>?<>
?<?>?>?<><?>?<?<?>>>?<
?<?<<><<<?<>>?<><<><>?
?>>><?<<>?>>>?<??>>?>>
>>???>???<>?<??><?>?><
?>>?>>>><>>?><>?>?<<>?
><?<?<<<?<<?<>??<>>?<<
>?<?<<<<???<?<<?<<?<<<
>><>>>><<>>?>?>??...

output:

17
14
15
18
16
17
14
17
17
16
15
16
16
15
17
16
18
13
13
15
16
17
18
16
16
18
14
19
18
15
18
17
16
17
16
16
18
17
17
17
16
16
14
17
15
16
18
16
16
18
16
17
16
17
16
12
17
15
17
16
16
16
17
16
16
18
17
16
18
18
15
17
19
18
19
17
16
15
17
17
16
16
18
13
12
19
17
19
16
16
18
16
17
18
14
15
16
18
10
14
...

result:

ok 100000 numbers

Test #9:

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

input:

100000
?><?><<<?<><<<>>><<>>>
><><<<>?><><???>><>><<
<><>>><>>>>>>>>>><<><<
<>>>><<<<<<><<<<<>>?><
><<><>><?>>>>><>>><>><
<?<<<<<>><<>>>>><?<><<
<?<<<><<>>>>><<<><>>><
><<><<>><<<<><<><<>>?<
>><<<><<<<<>>>>><<?>><
>?<<?<<<?<<<<<>?<<<>>>
<>?<>>>?<><><>>>><><<>
><<?<?<<<<>>><><<>><<?
<>>><>?>>>><><>>>...

output:

14
16
11
13
12
14
14
15
14
12
14
15
14
13
13
15
15
16
17
11
16
15
17
17
14
16
12
13
15
16
11
17
14
18
16
16
16
14
13
13
14
16
16
16
17
16
16
16
15
15
16
10
9
14
16
16
13
14
16
15
16
14
13
17
16
16
17
15
17
13
14
12
13
11
10
13
14
15
11
15
17
13
17
14
16
12
15
11
15
15
14
15
12
16
17
14
17
16
12
13
1...

result:

ok 100000 numbers

Test #10:

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

input:

20000
?<?><??>>?<?><<>>?>?>?>?<<<><???<?<<<><?<?<>>?<><>
????><??><>??<><????><>?<>?<?><<<><>?<>??<?<<?><<>
>?>>?>>>>>>?<<??<??<?<?>>><??<<>>>?<<?<<>?<<<>>><?
?<<>>?>>><?><<><?><>>?><?<<?<>????<>><<<<?>><<>??<
?????>>>>?>?><<>??>>>?<><?>><??????>>>?<>??>>?????
>>>?<?<<?<>>>????<<?>><><>>><>?<?<>><>>...

output:

40
37
45
40
43
40
38
40
37
41
42
35
41
40
38
40
37
39
40
39
40
42
42
41
43
39
35
41
41
39
40
41
35
42
38
40
37
39
41
38
37
39
37
42
38
40
42
37
43
42
41
38
41
41
40
42
42
39
36
41
42
45
40
41
38
37
37
37
38
37
41
39
39
42
38
40
37
39
40
37
42
38
41
40
39
37
39
40
37
38
39
37
37
41
37
39
39
39
42
38
...

result:

ok 20000 numbers

Test #11:

score: 0
Accepted
time: 77ms
memory: 4328kb

input:

5000
<<???<<?<>>>?<<<<>?<><>?><??<?<><<><?><>>><<><?>>?>>?>??>?>>?<<?<<<?>?><>><<<>>>?<<<<<>??>>>>?><>>?<
>?<>?>><?<?>>??>????>>??>?>????>>?>>???>????<?><<>><<<<>?<<?<??><>><?<?<>??<<>>><<<<<?>>??<?<<>>>?>>
<>><?><???>??<?????><><?>><?>><???<?<><?<>?<???<<?>>????>?<?<<><<<>>?>>?><>??<?>?<><>><??<>>?...

output:

80
85
82
88
78
78
81
79
86
79
80
79
82
76
81
78
84
78
80
81
82
80
81
78
81
87
81
85
83
85
84
83
82
79
82
83
82
83
82
84
78
81
77
77
84
82
74
83
80
80
83
84
80
80
75
81
80
82
81
83
79
78
82
85
80
82
85
83
81
79
84
80
86
84
82
79
81
78
83
81
82
83
77
83
84
85
81
81
79
83
84
85
83
82
84
84
78
77
83
74
...

result:

ok 5000 numbers

Test #12:

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

input:

1250
><?>?<>><?<<???<?<>>>????><>??<><<><>??<<<><>???<?>?<<?<>?<><??<>><<>>><<>??<<<???>><??><?>><???>?>?><??>?<<?>><>><<>>><>><<??<<><<<<>???><??????<><><?>?<?<??<<><>??>??><?>?<><><<??<<><><?>>?><??<?><?
<><>?>?>?<?<<><?>?<><>?<?><>>><<>?><<?<><><><?>?><?<>>?<<>??<??>?>?<>>?<?>?<<????>?>><><???><?...

output:

160
161
165
168
165
171
172
164
161
162
165
167
164
165
164
166
157
163
168
166
164
169
165
167
167
167
169
163
164
167
173
161
161
163
167
160
166
165
165
163
167
162
168
168
163
161
160
163
169
166
168
165
167
172
167
165
171
163
163
166
164
167
165
165
167
167
167
166
161
165
163
167
163
163
162
...

result:

ok 1250 numbers

Test #13:

score: 0
Accepted
time: 63ms
memory: 5084kb

input:

800
><<?<><>?>><?<<?<<>>><<>><<>?>>>??><?>><?><<<?<>><>?><>><><?<<<<<?>><>>?<><<>??<??><<>><>???>??><???>???>?<?<<>>??<>>?<?>??<<??<<><<>>?><<?<>?><><<<>?><>?<>>>>?<?<><<?<?><<>>>?>>><>???<?><>>><><?<<><>?<????>?>?>???>?><>>>><???<<??<<<?<>?><>>?><>>??<>
>?<<<???<<>??<><<>?>?<<?>?<>><<><>?<?<><??<>>...

output:

203
211
202
204
201
205
206
204
209
203
204
211
199
204
209
211
209
206
207
208
206
208
208
209
209
202
202
206
208
204
209
209
206
207
198
207
212
203
206
205
199
210
209
207
213
206
204
207
202
210
206
202
213
205
208
205
198
206
198
200
204
202
212
210
207
208
199
205
208
206
203
206
203
213
210
...

result:

ok 800 numbers

Test #14:

score: 0
Accepted
time: 48ms
memory: 5644kb

input:

400
>><>?????<><<>>???<??????<<??>>>><??<<<<?>>?>???<>><?><<><<?>???<<?>?<>?<<<?>>??><<?>>>>?>??<??>>??>???<?<><<>?<>>???<>>?>><<?<<><???<<<<??<?<><?<<<<?<>??>><?<><??<?>?><>?<<?>>?><<??<<>><<<><>>><<>>>><?><>??<>><>>?<<<>??>>?>??><?<<??<<?><?<>>?>?<><??<>?<<<<<>?<?<?<<???><?<?<<?<<?>?<<><>??>>>??>>...

output:

266
252
253
255
257
261
260
264
256
258
263
252
256
262
258
257
259
259
258
257
253
254
261
262
262
256
260
264
256
264
265
246
267
266
258
254
263
252
262
252
264
258
259
254
257
263
255
259
254
257
258
259
252
261
260
263
255
259
254
257
252
256
259
259
255
259
252
262
260
254
258
261
254
257
255
...

result:

ok 400 numbers

Test #15:

score: 0
Accepted
time: 62ms
memory: 7564kb

input:

200
???><???>><<<?>>?<><?<>><<>>>>??<?><<>>>>????<<>>>?><><?<><><????<<><?><<???>>?>???><?>><?><<><>>?>??<<<<?>?<?>>?>?>><><>><<?<<>>><<?>>>?>>>?<?<<<<><><>>???<<??>>?>><??>?????>><<><>><<<???<>><<??<>?><><>?>><<<<><><<>?><><?<>?>>?<?>???<?><?<???>?<<<<<<??<><><?>><?<?>>>?<?<<???>?>?<<?<?<?<?>?<>??>...

output:

413
409
412
417
407
412
417
423
416
406
414
418
419
421
419
408
418
409
412
429
425
409
409
424
406
409
415
413
411
407
416
410
410
421
423
402
415
415
416
415
417
409
412
414
416
406
417
407
412
421
413
417
416
419
409
405
409
420
421
408
420
413
408
421
415
410
420
406
406
419
413
413
425
418
417
...

result:

ok 200 numbers

Test #16:

score: 0
Accepted
time: 63ms
memory: 15492kb

input:

50
?>?<>>>><?>>?<?>>>?>??<<<<>>>>?><?<??>><<>?<<??<>??<?><>><?>?<><?<<><?><?<<>??>>>???>?>>><>?<>?<>>?<?>>???><><?<>????>??<?>><<?><><><<><><><?<><><<??><>?>>><<<<??>><><><????>??<<<<<?>????<?><<<><<<<<>><>><><><>?>?><>??><<<<><<?>?<<?>><><?>>><<>?>>?>>>>?><?<><?><<><>>?<><<<?<<>?<<<?>?>>??<<?>?<<><...

output:

826
834
826
828
834
824
832
831
839
829
826
826
826
841
837
824
835
834
826
832
824
837
842
850
846
829
830
840
833
823
828
833
826
841
820
830
845
833
811
831
816
841
831
816
839
822
830
840
840
829

result:

ok 50 numbers

Test #17:

score: 0
Accepted
time: 87ms
memory: 62760kb

input:

8
<>?>?<><??<??>>><?>?><<<>???><><<>><>>>?<>?<>><<<??>>??><><???<><<>??<?<<?>>?<>?<?><<>?>?<????<>?<>>><?????><>>??><?<><>?>><???<?>??<??><?<?>??><><??<><>???>?><<<?>?<<><???>><<?>>>>>>>>?>?><?><<>><??>??>>>??<<<<><><<?>><?<?<>><>?<><<?>???<??>??>>??<?<<<>?>?<?<>>?>><??>?>???<???<>???<?><<?>???>??>?...

output:

2076
2077
2071
2063
2076
2073
2084
2070

result:

ok 8 numbers

Test #18:

score: 0
Accepted
time: 62ms
memory: 199068kb

input:

2
>?<>><>>><><>?<<?><??<?><??<?<??<??<??<<?>>?><<>>??<<<<<??><????><>?<>???<?>??<??>>??>????<><<><<?<<?<><<><??><?<?>>?<<><><??><??<>??<<?>>>??<><>?<?<?>><??<>>>?<<?<<<<?<<??<??<><><????>??<?><<<>><?<??<<>>?<<<<><>>??<<><?<?<<>>?<?<<?<?>><>?<??>><<<<><>><>>????>><<>??<<<?<?>><?<><?<>?>>?>??>?>>>???<...

output:

4168
4153

result:

ok 2 number(s): "4168 4153"

Test #19:

score: 0
Accepted
time: 63ms
memory: 8288kb

input:

530
?
??
???
????
?????
??????
???????
????????
?????????
??????????
???????????
????????????
?????????????
??????????????
???????????????
????????????????
?????????????????
??????????????????
???????????????????
????????????????????
?????????????????????
??????????????????????
?????????????????????...

output:

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
10...

result:

ok 530 numbers

Test #20:

score: 0
Accepted
time: 40ms
memory: 8040kb

input:

530
>
>>
>>>
>>>>
>>>>>
>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

ok 530 numbers

Test #21:

score: 0
Accepted
time: 64ms
memory: 9804kb

input:

150
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????...

output:

499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
...

result:

ok 150 numbers

Test #22:

score: 0
Accepted
time: 42ms
memory: 9500kb

input:

150
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

result:

ok 150 numbers

Test #23:

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

input:

2
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????...

output:

4998
4999

result:

ok 2 number(s): "4998 4999"

Test #24:

score: 0
Accepted
time: 53ms
memory: 199064kb

input:

2
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>...

output:

0
0

result:

ok 2 number(s): "0 0"

Test #25:

score: 0
Accepted
time: 67ms
memory: 15424kb

input:

50
????????????????<<>??<???<?????<????????????>??????????????????????????>??<?????????<?????????>????????????????????????????????<????????????????>?????????????>????<?<?<?????<?????>???????????????????????????????>???<??????????<??????????>??????>?????????>????????>????????????>?<?<????????????????...

output:

975
976
970
971
974
975
971
971
974
969
974
978
974
969
969
971
980
978
974
974
975
966
972
976
970
976
969
970
970
976
976
974
981
978
972
975
977
974
976
972
980
969
970
971
974
971
972
977
974
970

result:

ok 50 numbers

Test #26:

score: 0
Accepted
time: 95ms
memory: 62464kb

input:

8
??????????<????????????????????????????>???<?????<?????????>????<???????????????>?????????????>>?????????????????????<???????>?????????????>???????????????????????>?????>????>>????>??????????????????????????????<???????<????????<??????????????>????????????????????????????????<>??????>?????????????...

output:

2440
2434
2439
2437
2433
2425
2443
2431

result:

ok 8 numbers

Test #27:

score: 0
Accepted
time: 84ms
memory: 198976kb

input:

2
???????????>???>?<??????<??????????<?<???????????????????????????????>??>????????>????????????????????<>??????????>???????????????????>>????????????>??????????????>??>?????????????????????????<???????<?????????>??<???????<??????????????????????<???????<?????????????>??????????????<????????????????...

output:

4872
4882

result:

ok 2 number(s): "4872 4882"

Test #28:

score: 0
Accepted
time: 53ms
memory: 15420kb

input:

50
<<><?>><?>??<?<?<>?><>><?>><???<><?<>?<<>>?<<<<<????<>???><??<>>??>>?<?<<?<?<?>>?<>?>>><<<<>><><>??>??<?<>><><?>><>?><<>?>>><??>?<?><>?<<?>?<<<>>><??><>><><<<<??>>??>??>><><<><>??<<<<<>?>><>><>?<<?>>>??<<<<?<<<<>>?>?<?><?<><<?>?>>?><<??<?<?><<?<??<<<?<>?>?>>?<>><<>>>>><><?>>>?>?<>>>><<??><??<<<><...

output:

815
810
820
814
833
836
822
838
830
830
830
824
823
826
821
825
809
817
817
832
815
816
829
819
822
806
829
822
824
831
823
823
820
821
825
820
814
828
832
822
827
825
834
823
830
815
840
842
822
830

result:

ok 50 numbers

Test #29:

score: 0
Accepted
time: 82ms
memory: 62768kb

input:

8
<<?>??>?><?<?<?>????<>><?<<<<<<<?>>??<>?><><>>><><>?><>??<<?<?>>??<<><>>>>>?>><>>?<><?<??<><<?><?><>?>??><>><><><<?????><?>>?><?><<<><?><<><<><><><?>?><?>>??<?<><>>>>???<<?<<<>?>><?>?><<<??>??>><???<<??<?><>><>>><<<><?<???>><?<<?<?<<>???<<><<>>?>><<?<>??>><??<?<?<<>?>?>>>?<<><>>???>><?<<<?>>?<?<<<...

output:

2054
2069
2058
2043
2057
2070
2055
2063

result:

ok 8 numbers

Test #30:

score: 0
Accepted
time: 72ms
memory: 199096kb

input:

2
?>>?<?<?><>><<>>>??>?<>?<>>><???>>?>>><><><>>?<>?<<?>?<>?<><>?>?<<>>><<<<<??>><?<>??<?<<???>>>>?>><><<<><>>>?<>><>><?><?>>???>??<>??>??<?<?>?<?>>?><<>>??>?<?<<???<>><?>>?<<<<><?>><<<<>><?><???<?<><<<<?>>><>??>?>><?<??<?<?>??<><<???><><<?<<<<<<>?<>>>>?<><<<??<?>>???><>>?><?><??><???>??<<?<<<>>??>><...

output:

4105
4137

result:

ok 2 number(s): "4105 4137"

Test #31:

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

input:

50
<<<<<<?>><><?<?<><<>>><?>?>?<>?<>><?<>>><<>?<<>>??<><<<><>>>><?<<?>><<?<>>>?><?><>>><<<<<<?<<<<>><>>?><?<>><<><?<><><<<>><><>><<>?>??><><?>>>><<<<><??<?><>><><>?>><><?>><<<>>><<?>><>??>?<><>>>>>>>?>>>>><>?<<?<<>?<>?<?<?><?>>>><><<<>><>><<<><>??>><<?<><<>>><>>??<??<>>>><>>><>?<><<<<>><?<><?<>><<>?...

output:

794
791
807
783
795
793
788
808
796
811
806
800
813
797
807
793
780
792
792
784
789
805
783
795
788
795
802
804
807
798
806
803
798
805
802
795
803
802
792
801
803
804
790
809
793
809
804
788
807
792

result:

ok 50 numbers

Test #32:

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

input:

8
<<<<?><<<?>?><<><><<>><>>><<>>><<>>><><<<><>>>?>>><??<<>?<??>><><>>?>>>>><?<<><><<<<?<<<<>>>><??<<<><?<<?>?<<><<<<>??<>?>><><<?<>>?<><?<>>?<<??<>?><?>>><?>?<>?<<?<><>????>><??>>><>?>>><<<>>><?<><><><<><>><<?<><<><>?><??<<?><?>>><<<><?>>?<>>>>>><<<?>>>>?><><>>?<><<>><<>><?<<<<?>?<?<<><><?<?????<><>...

output:

2008
2014
2000
2014
1997
1985
1999
1995

result:

ok 8 numbers

Test #33:

score: 0
Accepted
time: 63ms
memory: 199064kb

input:

2
<><<><<?<<<<<>?><<><><<>>?><?<<<<<<??<><<<<>?<<?<<>>?<<>><<>>>>><<?><><<>?<<><?>>?<<<>><?<<>>>><<<<??<?<?><<?<<>>><?<<<>>?<?>><>?<<<>><?<?><<??<>?<?>>><>>?>??>><<><>><><<?<<<?<><<>><>><?>>><<<>>??<<><<>>>><>>?>>>??<>?<<>?<<>>><><<<><>><??><??>?><?<>><>?<><>??<??>><>>>>><????<<>>>?<><><<>>>>??>>><?...

output:

3999
3996

result:

ok 2 number(s): "3999 3996"

Test #34:

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

input:

50
<>><<><><<>><<>>>>><><<??>?>>><><><<><<><>?><><>?>?>?<>?><<>?>>><><<<<?<<><<<<<>>><<<<?<<<>><><><<><>><?<><><>>><>><><<<<<<??<>><<<?<<><<>><><<>><<<>><<><<>><>><<<><<>><?><>?><>><><<<<><<<>><<><<<<>>>><<?>>>?<><?<><><>><<<>><><<?<<><<>?<<<<<><><>><<>>><?<?<<><>>><<<<>?<>?<<<<<<><>>>><?<<><<<>>><<...

output:

774
768
772
768
775
773
787
765
783
759
774
782
769
769
774
765
773
779
760
770
773
778
782
764
765
772
765
787
764
771
766
763
776
765
775
775
761
776
774
780
774
772
782
768
765
778
770
757
769
777

result:

ok 50 numbers

Test #35:

score: 0
Accepted
time: 76ms
memory: 62412kb

input:

8
><><>><>><>>>><<><<?<>?><<?>><<?<<<<><?><>>><>?<><><><?<><>>>?<<><<>>><<><<<<<><>?<><>?<>?><>>>>?>><>><><<?<<>>>><>><?<>><?><>?><<>><<<<<<><><>>><><>><<>><>?<>><?><<<<>><<<<<>><>><<<><<>>???<<<<<<<<><<>>>>?<?<>>??<>>>>><><?<<><><?<><><><>?<><<<<><>>?<><<<>>><>>><><>?<<<?<<<>>>>><<<<<<>>><<<?<>?>>>...

output:

1904
1943
1917
1950
1930
1946
1928
1919

result:

ok 8 numbers

Test #36:

score: 0
Accepted
time: 59ms
memory: 199096kb

input:

2
<>><<>><>><?><<>?<>>>><>><<??<><><?<<<>><<<>><>>>><<><<<<>>><<?><?<>><><><<><>>>><>?<><<??><?><<>>><<<>><?><<<>><?><<?<>><><<>>><<<<<><<?<<?<>>><><<><<<<><<><<??><<<>><<><<??<<>><><><?><>><<<><><<<<><><<<>><<?<<<>??<<<>??<>><<><<>>>><<<<<>><<<>><<<>>?<<<>?><<<<<<<<<?<>><>><>><<<>>><<<>><?>><<<<>><...

output:

3857
3908

result:

ok 2 number(s): "3857 3908"

Test #37:

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

input:

50
<<>>>>><<><><<><><>>>><<<<<>>><<><>><<>?<>?><><>>??<<<<?<<><>><<<>>>>>?><<<><<><>>><><>>><<<>><<<><>>><>><<>>><>><<>>><<<><<<>><<>>>><><<>>><<<<<<<>>>>?<>><<>>><>><><<<<<<><<>><><><<>><<<?<><<><?><<?<<<>?><?<<<><<><<<><<<<>><>><<<><<<<<<><><>><><><<<>>><<<<>>><>><<??><>>><>>>>><<<<><<<<><>><<<>><...

output:

761
767
753
752
755
763
744
760
770
768
763
748
767
767
764
768
764
760
753
781
757
745
761
755
768
766
767
759
755
760
756
761
752
763
755
762
749
755
757
751
758
762
765
774
757
754
745
746
753
767

result:

ok 50 numbers

Test #38:

score: 0
Accepted
time: 70ms
memory: 62412kb

input:

8
<><<<>>>>>>><<>><<<?<><<<<<<<>><><<>?<>>>>?>>>>?><><<>?>>><<>>>><<>><<><><<>><<>>>>>?><><<<<><><><><?<><<<>><><><>>><<><<><>><><><?>?<<><<<?<<<><<><>>>><<><><>><><<><>><<?>>><>><><<<<>><<>><<>><><<>>><<>><>>>><?>?>><>>>>>>>>>><><>>>>>>>>>><?>>>><?><><<>><<<<<><>>>?<><>>>>??<><><><>>?>>>><<><>>><<<...

output:

1886
1911
1902
1925
1914
1899
1901
1894

result:

ok 8 numbers

Test #39:

score: 0
Accepted
time: 67ms
memory: 199092kb

input:

2
>>><><>>>>?>>?<<>><<>><>>><<>>><<<<><<<<>>><<>><><>>>>?><?<><<>>><<?>><><><><>><<>>>>>><<<>?>>>>><>>><<<<<<<>>><<><<<><<<<<<<><<?<?>><><>><>><<<>><?<<<<>><>>><><<<>><><><><<><>>>><<<><?><><<><>>>><>>><<<><<<<><<>><>>><>><<>><<<<><<><<<>><>><>>><>><>>>>><<>>>>>><<<<<<><><>><><<<>><<>>?<><<<>?<>?>?<...

output:

3800
3812

result:

ok 2 number(s): "3800 3812"

Test #40:

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

input:

50
>>>><<>>>>>><><<<><><<><><><<<<?><>><<<>><<<<>><><><>>><><<>>>><<<<<><><><>>><><<<><<<><><<><<><<>?<>>>>>>><><<><><<><<>><><<>><>>>>><<><<<<<?>>><<><><<<>>>>>><<<><>>>>>><><<<><>><<<>><<<<<<<>>>>><<><<<<>>>>>>>><>><<<<><><>>>><>><<><<>><<<>>>><<<>><><><>><<<<<<<<<><<<>><>>>><><<><>>><><<<<><<<><>...

output:

740
765
752
746
756
750
760
747
760
747
754
743
760
744
743
735
750
750
757
753
751
759
764
740
770
762
744
739
748
756
742
732
757
745
753
754
748
761
741
766
744
769
751
779
758
751
744
749
755
747

result:

ok 50 numbers

Test #41:

score: 0
Accepted
time: 70ms
memory: 62468kb

input:

8
><><><><<<<<>><<><>>>>><<<<>><>>><<<><<<<<>>>>>>>><<><>><><<<?<><>>><>>><>>>>>><<><><<>>><<<>>>>>>>>><<<>><>><<>><<>>><<<>><?<<>><><>>>>><><<<>><<>><><>><>>><<<><>>>>><><>><<><><><>><><<<<<<>><><><<<<>>><<>>>>>><<><><<<><<><<<<<<<<>>>>><>><><?>>>><>>>>>><><<<>><<><<><<><><><<<<<<>>><<<<><>><><><<>...

output:

1880
1856
1878
1867
1885
1907
1887
1865

result:

ok 8 numbers

Test #42:

score: 0
Accepted
time: 69ms
memory: 199064kb

input:

2
<<><<>><<><><>><?<<<>><>><>?<<<<<<>>>><><<<<<<>>><<><>><<<<<>><<>?><<<><<<><<>><<><><><>><<<<>>>>><<<<>><>>><<?><<<>>><<<>?<<><<>>>><>>><<?><><<<><><<><<>>><>><><>>><>><<>>>>><<>>><<<<<>><<<<>><<>><<>>>?><>>><<<><>>><<<>>>>><>>><<<><<<<<<<>><><<<><><><>><<<>>>><><><?>><>><>>>><>>>?><><><><<<<<<><<...

output:

3798
3782

result:

ok 2 number(s): "3798 3782"

Test #43:

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

input:

50
<><><<<<><><><<<<>><>>><>>><><>><<><<>>>><><<<><>>?>><<<><<<<>><><<<<>>>><<><<><<><<<<<>>><<>><><<<<<>>><<><><<>><<<><<<<<>><><><>><>>><><>>>>><<<>><<<><><>>>><>><>><><<<<?>><>>>>>>>>>><<<<>><>>><<>><><><<>><<<<<<>><<><<<<>>>>>>>>>><><<><><<><<<>>>>>><><><>>>>?<<><><<<>><>>?><<><><<><>>>>>>><><<>...

output:

738
748
756
747
747
749
746
744
747
753
752
751
745
744
753
741
746
747
742
745
749
745
747
742
744
747
746
748
751
755
753
755
749
749
760
748
749
748
760
743
750
743
760
737
752
745
753
759
753
755

result:

ok 50 numbers

Test #44:

score: 0
Accepted
time: 70ms
memory: 62528kb

input:

8
><<<><<><<<<><>>><<<<>><<<><<<<<<<<>><><<<>><<<><>>>>><<>><<>><><>><><><><><<>><<><><><<<<>>><<><>>>>>>>><><<>>><>><<<<<><>><><<<><<>>>><<><<<<<<><<><<<<><>>?><<<><<<>><<>>>>>>><>><>>>><><<<><<<><>>><<><<><<>>><>>>>><<><>><<<><><<>>><<<<<<>>>>>>><<>>><<<><>>><><>>>>>><><<>>>><><<<<><<><>>?><?<>>><...

output:

1884
1875
1885
1867
1906
1876
1886
1896

result:

ok 8 numbers

Test #45:

score: 0
Accepted
time: 55ms
memory: 199092kb

input:

2
>><<<<<><<><<<>><<<<><>><><<><>>>>>>><<<<<><<><><<>>><>>>><><<<>>>>?><<>><>><><<<<<>><<<<<<><><>><<>><>><>>>>>><>><>>><<<<<>>>><<<><><<>><>>>>><<>><>>>>><>>>><><<>>><><<<<<<><<><<<><><><<<>>><><<<<><<<><<><><<>>><<<>?><>><<><<>>>><<<?>><<><<><>><><>><><><<><<><<><><<><?>>><><>>>>><>>>>>>>><><<>><<...

output:

3723
3758

result:

ok 2 number(s): "3723 3758"

Extra Test:

score: 0
Extra Test Passed