Submission #203705

# Submission time Handle Problem Language Result Execution time Memory
203705 2020-02-21T22:19:07 Z rqi Devil's Share (RMI19_devil) C++14
27 / 100
58 ms 2012 KB
#pragma GCC optimize ("O3")
#pragma GCC target ("sse4")
 
#include <bits/stdc++.h>
 
using namespace std;
 
typedef double db;
typedef long long ll;
typedef long double ld;
typedef string str;
 
typedef pair<int, int> pi;
typedef pair<ll,ll> pl;
typedef pair<ld,ld> pd;
typedef complex<ld> cd;
 
typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<ld> vd;
typedef vector<str> vs;
typedef vector<pi> vpi;
typedef vector<pl> vpl;
typedef vector<cd> vcd;
 
#define FOR(i,a,b) for (int i = (a); i < (b); i++)
#define F0R(i,a) FOR(i,0,a)
#define ROF(i,a,b) for (int i = (b)-1; i >= (a); i--)
#define R0F(i,a) ROF(i,0,a)
#define trav(a,x) for (auto& a : x)
 
#define mp make_pair
#define pb push_back
#define eb emplace_back
#define f first
#define s second
#define lb lower_bound
#define ub upper_bound
 
#define sz(x) (int)x.size()
#define all(x) begin(x), end(x)
#define rall(x) rbegin(x), rend(x)
#define rsz resize
#define ins insert
 
const int MOD = 1e9+7; // 998244353 = (119<<23)+1
const ll INF = 1e18;
const int MX = 2e5+5;
const ld PI = 4*atan((ld)1);
 
template<class T> bool ckmin(T& a, const T& b) { return a > b ? a = b, 1 : 0; }
template<class T> bool ckmax(T& a, const T& b) { return a < b ? a = b, 1 : 0; }
 
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
 
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/rope>
 
using namespace __gnu_pbds;
using namespace __gnu_cxx;
 
template <class T> using Tree = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
 
#define ook order_of_key
#define fbo find_by_order
 
namespace input {
    template<class T> void re(complex<T>& x);
    template<class T1, class T2> void re(pair<T1,T2>& p);
    template<class T> void re(vector<T>& a);
    template<class T, size_t SZ> void re(array<T,SZ>& a);
 
    template<class T> void re(T& x) { cin >> x; }
    void re(double& x) { string t; re(t); x = stod(t); }
    void re(ld& x) { string t; re(t); x = stold(t); }
    template<class T, class... Ts> void re(T& t, Ts&... ts) { 
        re(t); re(ts...); 
    }
 
    template<class T> void re(complex<T>& x) { T a,b; re(a,b); x = cd(a,b); }
    template<class T1, class T2> void re(pair<T1,T2>& p) { re(p.f,p.s); }
    template<class T> void re(vector<T>& a) { F0R(i,sz(a)) re(a[i]); }
    template<class T, size_t SZ> void re(array<T,SZ>& a) { F0R(i,SZ) re(a[i]); }
}
 
using namespace input;
 
namespace output {
    void pr(int x) { cout << x; }
    void pr(long x) { cout << x; }
    void pr(ll x) { cout << x; }
    void pr(unsigned x) { cout << x; }
    void pr(unsigned long x) { cout << x; }
    void pr(unsigned long long x) { cout << x; }
    void pr(float x) { cout << x; }
    void pr(double x) { cout << x; }
    void pr(ld x) { cout << x; }
    void pr(char x) { cout << x; }
    void pr(const char* x) { cout << x; }
    void pr(const string& x) { cout << x; }
    void pr(bool x) { pr(x ? "true" : "false"); }
    template<class T> void pr(const complex<T>& x) { cout << x; }
    
    template<class T1, class T2> void pr(const pair<T1,T2>& x);
    template<class T> void pr(const T& x);
    
    template<class T, class... Ts> void pr(const T& t, const Ts&... ts) { 
        pr(t); pr(ts...); 
    }
    template<class T1, class T2> void pr(const pair<T1,T2>& x) { 
        pr("{",x.f,", ",x.s,"}"); 
    }
    template<class T> void pr(const T& x) { 
        pr("{"); // const iterator needed for vector<bool>
        bool fst = 1; for (const auto& a: x) pr(!fst?", ":"",a), fst = 0; 
        pr("}");
    }
    
    void ps() { pr("\n"); } // print w/ spaces
    template<class T, class... Ts> void ps(const T& t, const Ts&... ts) { 
        pr(t); if (sizeof...(ts)) pr(" "); ps(ts...); 
    }
    
    void pc() { pr("]\n"); } // debug w/ commas
    template<class T, class... Ts> void pc(const T& t, const Ts&... ts) { 
        pr(t); if (sizeof...(ts)) pr(", "); pc(ts...); 
    }
    #define dbg(x...) pr("[",#x,"] = ["), pc(x);
}
 
using namespace output;
 
namespace io {
    void setIn(string s) { freopen(s.c_str(),"r",stdin); }
    void setOut(string s) { freopen(s.c_str(),"w",stdout); }
    void setIO(string s = "") {
        cin.sync_with_stdio(0); cin.tie(0); // fast I/O
        cin.exceptions(cin.failbit); // ex. throws exception when you try to read letter into int
        if (sz(s)) { setIn(s+".in"), setOut(s+".out"); } // for USACO
    }
}
 
using namespace io;
 
template<class T> T invGeneral(T a, T b) {
	a %= b; if (a == 0) return b == 1 ? 0 : -1;
	T x = invGeneral(b,a); 
	return x == -1 ? -1 : ((1-(ll)b*x)/a+b)%b;
}
 
template<class T> struct modular {
	T val; 
	explicit operator T() const { return val; }
	modular() { val = 0; }
	modular(const ll& v) { 
		val = (-MOD <= v && v <= MOD) ? v : v % MOD;
		if (val < 0) val += MOD;
	}
	
	// friend ostream& operator<<(ostream& os, const modular& a) { return os << a.val; }
	friend void pr(const modular& a) { pr(a.val); }
	friend void re(modular& a) { ll x; re(x); a = modular(x); }
   
	friend bool operator==(const modular& a, const modular& b) { return a.val == b.val; }
	friend bool operator!=(const modular& a, const modular& b) { return !(a == b); }
	friend bool operator<(const modular& a, const modular& b) { return a.val < b.val; }
 
	modular operator-() const { return modular(-val); }
	modular& operator+=(const modular& m) { if ((val += m.val) >= MOD) val -= MOD; return *this; }
	modular& operator-=(const modular& m) { if ((val -= m.val) < 0) val += MOD; return *this; }
	modular& operator*=(const modular& m) { val = (ll)val*m.val%MOD; return *this; }
	friend modular pow(modular a, ll p) {
		modular ans = 1; for (; p; p /= 2, a *= a) if (p&1) ans *= a;
		return ans;
	}
	friend modular inv(const modular& a) { 
		auto i = invGeneral(a.val,MOD); assert(i != -1);
		return i;
	} // equivalent to return exp(b,MOD-2) if MOD is prime
	modular& operator/=(const modular& m) { return (*this) *= inv(m); }
	
	friend modular operator+(modular a, const modular& b) { return a += b; }
	friend modular operator-(modular a, const modular& b) { return a -= b; }
	friend modular operator*(modular a, const modular& b) { return a *= b; }
	
	friend modular operator/(modular a, const modular& b) { return a /= b; }
};
 
typedef modular<int> mi;
typedef pair<mi,mi> pmi;
typedef vector<mi> vmi;
typedef vector<pmi> vpmi;

string ans1[4000] = {
	"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44",
"44",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"444",
"444",
"444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"3",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"43",
"34",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"443",
"434",
"344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4443",
"4443",
"4344",
"3444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"33",
"33",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"433",
"334",
"334",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4433",
"4343",
"3344",
"3344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44433",
"43434",
"43344",
"33444",
"33444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"333",
"333",
"333",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4333",
"3334",
"3334",
"3334",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44333",
"43433",
"33344",
"33344",
"33344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"444333",
"434343",
"433344",
"333444",
"333444",
"333444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"2",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"42",
"24",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"442",
"424",
"244",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4442",
"4442",
"4244",
"2444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"32",
"23",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"432",
"324",
"234",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4432",
"4234",
"3244",
"2344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44432",
"43424",
"42344",
"32444",
"23444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"332",
"323",
"233",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4332",
"3324",
"3234",
"2334",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44332",
"42334",
"33244",
"32344",
"23344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"444332",
"434342",
"423344",
"332444",
"323444",
"233444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"3332",
"3332",
"3233",
"2333",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"43332",
"33324",
"33243",
"32334",
"23334",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"443332",
"423334",
"333244",
"332344",
"323344",
"233344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4443332",
"4343432",
"4233344",
"3332444",
"3323444",
"3233444",
"2333444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"22",
"22",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"422",
"224",
"224",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4422",
"4242",
"2244",
"2244",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44422",
"42424",
"42244",
"22444",
"22444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"322",
"223",
"223",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4322",
"3224",
"2234",
"2234",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44322",
"42423",
"32244",
"22344",
"22344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"444322",
"424234",
"422344",
"322444",
"223444",
"223444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"3322",
"3232",
"2233",
"2233",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"43322",
"32324",
"32243",
"22334",
"22334",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"443322",
"424233",
"323244",
"322344",
"223344",
"223344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4443322",
"4242334",
"4223344",
"3232444",
"3223444",
"2233444",
"2233444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"33322",
"32323",
"32233",
"22333",
"22333",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"433322",
"333224",
"323234",
"322343",
"223334",
"223334",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4433322",
"4242333",
"3323244",
"3232344",
"3223344",
"2233344",
"2233344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44433322",
"42423334",
"42233344",
"33232444",
"32323444",
"32233444",
"22333444",
"22333444",
"HI",
"HI",
"HI",
"HI",
"HI",
"222",
"222",
"222",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4222",
"2224",
"2224",
"2224",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44222",
"42422",
"22244",
"22244",
"22244",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"444222",
"424242",
"422244",
"222444",
"222444",
"222444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"3222",
"2223",
"2223",
"2223",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"43222",
"32224",
"22234",
"22234",
"22234",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"443222",
"424232",
"322244",
"222344",
"222344",
"222344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4443222",
"4242423",
"4223244",
"3222444",
"2223444",
"2223444",
"2223444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"33222",
"32322",
"22233",
"22233",
"22233",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"433222",
"323224",
"322243",
"222334",
"222334",
"222334",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4433222",
"4242332",
"3232244",
"3222443",
"2223344",
"2223344",
"2223344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44433222",
"42424233",
"42233244",
"32322444",
"32223444",
"22233444",
"22233444",
"22233444",
"HI",
"HI",
"HI",
"HI",
"HI",
"333222",
"323232",
"322233",
"222333",
"222333",
"222333",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4333222",
"3232324",
"3232243",
"3222433",
"2223334",
"2223334",
"2223334",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44333222",
"42423332",
"32323244",
"32322443",
"32223443",
"22233344",
"22233344",
"22233344",
"HI",
"HI",
"HI",
"HI",
"HI",
"444333222",
"424242333",
"422333244",
"323232444",
"323224443",
"322233444",
"222333444",
"222333444",
"222333444",
"HI",
"HI",
"HI",
"HI",
"1",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"41",
"14",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"441",
"414",
"144",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4441",
"4441",
"4144",
"1444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"31",
"13",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"431",
"314",
"134",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4431",
"4134",
"3144",
"1344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44431",
"43414",
"41344",
"31444",
"13444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"331",
"313",
"133",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4331",
"3314",
"3134",
"1334",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44331",
"41334",
"33144",
"31344",
"13344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"444331",
"434341",
"413344",
"331444",
"313444",
"133444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"3331",
"3331",
"3133",
"1333",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"43331",
"33314",
"33143",
"31334",
"13334",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"443331",
"413334",
"333144",
"331344",
"313344",
"133344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4443331",
"4343431",
"4133344",
"3331444",
"3313444",
"3133444",
"1333444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"21",
"12",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"421",
"214",
"124",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4421",
"4124",
"2144",
"1244",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44421",
"42414",
"41244",
"21444",
"12444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"321",
"213",
"123",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4321",
"3124",
"2134",
"1234",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44321",
"41324",
"31244",
"21344",
"12344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"444321",
"424134",
"412344",
"312444",
"213444",
"123444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"3321",
"3123",
"2133",
"1233",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"43321",
"32314",
"31243",
"21334",
"12334",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"443321",
"413324",
"323144",
"312344",
"213344",
"123344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4443321",
"4241334",
"4123344",
"3231444",
"3123444",
"2133444",
"1233444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"33321",
"32313",
"31233",
"21333",
"12333",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"433321",
"333214",
"323143",
"312343",
"213334",
"123334",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4433321",
"4133324",
"3313244",
"3231443",
"3123344",
"2133344",
"1233344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44433321",
"42413334",
"41233344",
"33132444",
"32313444",
"31233444",
"21333444",
"12333444",
"HI",
"HI",
"HI",
"HI",
"HI",
"221",
"212",
"122",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4221",
"2214",
"2124",
"1224",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44221",
"41224",
"22144",
"21244",
"12244",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"444221",
"424241",
"412244",
"221444",
"212444",
"122444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"3221",
"2213",
"2123",
"1223",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"43221",
"31224",
"22143",
"21234",
"12234",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"443221",
"413224",
"312244",
"221344",
"212344",
"122344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4443221",
"4242413",
"4123244",
"3122444",
"2213444",
"2123444",
"1223444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"33221",
"31223",
"22133",
"21233",
"12233",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"433221",
"323214",
"312243",
"221343",
"212334",
"122334",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4433221",
"4133224",
"3223144",
"3122443",
"2213344",
"2123344",
"1223344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44433221",
"42424133",
"41233244",
"32231444",
"31223444",
"22133444",
"21233444",
"12233444",
"HI",
"HI",
"HI",
"HI",
"HI",
"333221",
"323231",
"312233",
"221333",
"212333",
"122333",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4333221",
"3232314",
"3223143",
"3122433",
"2213343",
"2123334",
"1223334",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44333221",
"41333224",
"32323144",
"32231443",
"31223443",
"22133344",
"21233344",
"12233344",
"HI",
"HI",
"HI",
"HI",
"HI",
"444333221",
"424241333",
"412333244",
"323231444",
"322314443",
"312233444",
"221333444",
"212333444",
"122333444",
"HI",
"HI",
"HI",
"HI",
"2221",
"2221",
"2122",
"1222",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"42221",
"22214",
"22142",
"21224",
"12224",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"442221",
"412224",
"222144",
"221244",
"212244",
"122244",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4442221",
"4242421",
"4122244",
"2221444",
"2212444",
"2122444",
"1222444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"32221",
"22213",
"22132",
"21223",
"12223",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"432221",
"312224",
"222143",
"221243",
"212234",
"122234",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4432221",
"4132224",
"3122244",
"2221443",
"2212344",
"2122344",
"1222344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44432221",
"42424231",
"41232244",
"31222444",
"22213444",
"22123444",
"21223444",
"12223444",
"HI",
"HI",
"HI",
"HI",
"HI",
"332221",
"312223",
"222133",
"221233",
"212233",
"122233",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4332221",
"3232214",
"3122243",
"2221433",
"2212343",
"2122334",
"1222334",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44332221",
"41332224",
"32232144",
"31222443",
"22213443",
"22123344",
"21223344",
"12223344",
"HI",
"HI",
"HI",
"HI",
"HI",
"444332221",
"424242331",
"412332244",
"322231444",
"312224443",
"222133444",
"221233444",
"212233444",
"122233444",
"HI",
"HI",
"HI",
"HI",
"3332221",
"3232321",
"3122233",
"2221333",
"2212333",
"2122333",
"1222333",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"43332221",
"32323214",
"32232143",
"31222433",
"22213433",
"22123343",
"21223334",
"12223334",
"HI",
"HI",
"HI",
"HI",
"HI",
"443332221",
"413332224",
"323232144",
"322231443",
"312224433",
"222133443",
"221233344",
"212233344",
"122233344",
"HI",
"HI",
"HI",
"HI",
"4443332221",
"4242423331",
"4123332244",
"3231322444",
"3222314443",
"3122234443",
"2221333444",
"2212333444",
"2122333444",
"1222333444",
"HI",
"HI",
"HI",
"11",
"11",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"411",
"114",
"114",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4411",
"4141",
"1144",
"1144",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44411",
"41414",
"41144",
"11444",
"11444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"311",
"113",
"113",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4311",
"3114",
"1134",
"1134",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44311",
"41413",
"31144",
"11344",
"11344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"444311",
"414134",
"411344",
"311444",
"113444",
"113444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"3311",
"3131",
"1133",
"1133",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"43311",
"31314",
"31143",
"11334",
"11334",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"443311",
"414133",
"313144",
"311344",
"113344",
"113344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4443311",
"4141334",
"4113344",
"3131444",
"3113444",
"1133444",
"1133444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"33311",
"31313",
"31133",
"11333",
"11333",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"433311",
"333114",
"313134",
"311343",
"113334",
"113334",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4433311",
"4141333",
"3313144",
"3131344",
"3113344",
"1133344",
"1133344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44433311",
"41413334",
"41133344",
"33131444",
"31313444",
"31133444",
"11333444",
"11333444",
"HI",
"HI",
"HI",
"HI",
"HI",
"211",
"112",
"112",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4211",
"2114",
"1124",
"1124",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44211",
"41412",
"21144",
"11244",
"11244",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"444211",
"414124",
"411244",
"211444",
"112444",
"112444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"3211",
"2113",
"1123",
"1123",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"43211",
"31214",
"21143",
"11234",
"11234",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"443211",
"414132",
"311244",
"211344",
"112344",
"112344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4443211",
"4141324",
"4113244",
"3112444",
"2113444",
"1123444",
"1123444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"33211",
"31312",
"21133",
"11233",
"11233",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"433211",
"313124",
"311243",
"211343",
"112334",
"112334",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4433211",
"4141332",
"3131244",
"3112443",
"2113344",
"1123344",
"1123344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44433211",
"41413324",
"41133244",
"31312444",
"31123444",
"21133444",
"11233444",
"11233444",
"HI",
"HI",
"HI",
"HI",
"HI",
"333211",
"313123",
"311233",
"211333",
"112333",
"112333",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4333211",
"3231314",
"3131243",
"3112433",
"2113343",
"1123334",
"1123334",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44333211",
"41413332",
"32313144",
"31312443",
"31123443",
"21133344",
"11233344",
"11233344",
"HI",
"HI",
"HI",
"HI",
"HI",
"444333211",
"414133324",
"411333244",
"323131444",
"313124443",
"311233444",
"211333444",
"112333444",
"112333444",
"HI",
"HI",
"HI",
"HI",
"2211",
"2121",
"1122",
"1122",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"42211",
"21214",
"21142",
"11224",
"11224",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"442211",
"414122",
"212144",
"211244",
"112244",
"112244",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4442211",
"4141224",
"4112244",
"2121444",
"2112444",
"1122444",
"1122444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"32211",
"21213",
"21132",
"11223",
"11223",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"432211",
"312214",
"212134",
"211243",
"112234",
"112234",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4432211",
"4141322",
"3112244",
"2121344",
"2112344",
"1122344",
"1122344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44432211",
"41413224",
"41132244",
"31122444",
"21213444",
"21123444",
"11223444",
"11223444",
"HI",
"HI",
"HI",
"HI",
"HI",
"332211",
"313122",
"212133",
"211233",
"112233",
"112233",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4332211",
"3131224",
"3112243",
"2121334",
"2112343",
"1122334",
"1122334",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44332211",
"41413322",
"31231244",
"31122443",
"21213344",
"21123344",
"11223344",
"11223344",
"HI",
"HI",
"HI",
"HI",
"HI",
"444332211",
"414133224",
"411332244",
"312312444",
"311224443",
"212133444",
"211233444",
"112233444",
"112233444",
"HI",
"HI",
"HI",
"HI",
"3332211",
"3131223",
"3112233",
"2121333",
"2112333",
"1122333",
"1122333",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"43332211",
"32323114",
"31231243",
"31122433",
"21213334",
"21123343",
"11223334",
"11223334",
"HI",
"HI",
"HI",
"HI",
"HI",
"443332211",
"414133322",
"322313144",
"312312344",
"311224433",
"212133344",
"211233344",
"112233344",
"112233344",
"HI",
"HI",
"HI",
"HI",
"4443332211",
"4141333224",
"4113332244",
"3223131444",
"3123123444",
"3112234443",
"2121333444",
"2112333444",
"1122333444",
"1122333444",
"HI",
"HI",
"HI",
"22211",
"21212",
"21122",
"11222",
"11222",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"422211",
"222114",
"212124",
"211242",
"112224",
"112224",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4422211",
"4141222",
"2212144",
"2121244",
"2112244",
"1122244",
"1122244",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44422211",
"41412224",
"41122244",
"22121444",
"21212444",
"21122444",
"11222444",
"11222444",
"HI",
"HI",
"HI",
"HI",
"HI",
"322211",
"222113",
"212123",
"211232",
"112223",
"112223",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4322211",
"3122214",
"2212143",
"2121234",
"2112243",
"1122234",
"1122234",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44322211",
"41413222",
"31122244",
"22121443",
"21212344",
"21122344",
"11222344",
"11222344",
"HI",
"HI",
"HI",
"HI",
"HI",
"444322211",
"414132224",
"411322244",
"311222444",
"221214443",
"212123444",
"211223444",
"112223444",
"112223444",
"HI",
"HI",
"HI",
"HI",
"3322211",
"3131222",
"2212133",
"2121233",
"2112233",
"1122233",
"1122233",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"43322211",
"31312224",
"31122243",
"22121433",
"21212334",
"21122343",
"11222334",
"11222334",
"HI",
"HI",
"HI",
"HI",
"HI",
"443322211",
"414133222",
"312312244",
"311222443",
"221214433",
"212123344",
"211223344",
"112223344",
"112223344",
"HI",
"HI",
"HI",
"HI",
"4443322211",
"4141332224",
"4113322244",
"3123122444",
"3112224443",
"2212134443",
"2121233444",
"2112233444",
"1122233444",
"1122233444",
"HI",
"HI",
"HI",
"33322211",
"31312223",
"31122233",
"22121333",
"21212333",
"21122333",
"11222333",
"11222333",
"HI",
"HI",
"HI",
"HI",
"HI",
"433322211",
"323232114",
"312312243",
"311222433",
"221214333",
"212123334",
"211223343",
"112223334",
"112223334",
"HI",
"HI",
"HI",
"HI",
"4433322211",
"4141333222",
"3223213144",
"3123122443",
"3112224433",
"2212134433",
"2121233344",
"2112233344",
"1122233344",
"1122233344",
"HI",
"HI",
"HI",
"44433322211",
"41413332224",
"41133322244",
"32223131444",
"31231224443",
"31122244433",
"22121334443",
"21212333444",
"21122333444",
"11222333444",
"11222333444",
"HI",
"HI",
"111",
"111",
"111",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4111",
"1114",
"1114",
"1114",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44111",
"41411",
"11144",
"11144",
"11144",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"444111",
"414141",
"411144",
"111444",
"111444",
"111444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"3111",
"1113",
"1113",
"1113",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"43111",
"31114",
"11134",
"11134",
"11134",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"443111",
"414131",
"311144",
"111344",
"111344",
"111344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4443111",
"4141413",
"4113144",
"3111444",
"1113444",
"1113444",
"1113444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"33111",
"31311",
"11133",
"11133",
"11133",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"433111",
"313114",
"311143",
"111334",
"111334",
"111334",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4433111",
"4141331",
"3131144",
"3111443",
"1113344",
"1113344",
"1113344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44433111",
"41414133",
"41133144",
"31311444",
"31113444",
"11133444",
"11133444",
"11133444",
"HI",
"HI",
"HI",
"HI",
"HI",
"333111",
"313131",
"311133",
"111333",
"111333",
"111333",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4333111",
"3131314",
"3131143",
"3111433",
"1113334",
"1113334",
"1113334",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44333111",
"41413331",
"31313144",
"31311443",
"31113443",
"11133344",
"11133344",
"11133344",
"HI",
"HI",
"HI",
"HI",
"HI",
"444333111",
"414141333",
"411333144",
"313131444",
"313114443",
"311133444",
"111333444",
"111333444",
"111333444",
"HI",
"HI",
"HI",
"HI",
"2111",
"1112",
"1112",
"1112",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"42111",
"21114",
"11124",
"11124",
"11124",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"442111",
"414121",
"211144",
"111244",
"111244",
"111244",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4442111",
"4141412",
"4112144",
"2111444",
"1112444",
"1112444",
"1112444",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"32111",
"21113",
"11123",
"11123",
"11123",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"432111",
"312114",
"211143",
"111234",
"111234",
"111234",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4432111",
"4141321",
"3112144",
"2111443",
"1112344",
"1112344",
"1112344",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44432111",
"41414132",
"41132144",
"31112444",
"21113444",
"11123444",
"11123444",
"11123444",
"HI",
"HI",
"HI",
"HI",
"HI",
"332111",
"313121",
"211133",
"111233",
"111233",
"111233",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4332111",
"3131214",
"3112143",
"2111433",
"1112334",
"1112334",
"1112334",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44332111",
"41413321",
"31231144",
"31112443",
"21113443",
"11123344",
"11123344",
"11123344",
"HI",
"HI",
"HI",
"HI",
"HI",
"444332111",
"414141332",
"411332144",
"312311444",
"311124443",
"211133444",
"111233444",
"111233444",
"111233444",
"HI",
"HI",
"HI",
"HI",
"3332111",
"3131312",
"3112133",
"2111333",
"1112333",
"1112333",
"1112333",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"43332111",
"31313124",
"31231143",
"31112433",
"21113433",
"11123334",
"11123334",
"11123334",
"HI",
"HI",
"HI",
"HI",
"HI",
"443332111",
"414133321",
"313131244",
"312311443",
"311124433",
"211133443",
"111233344",
"111233344",
"111233344",
"HI",
"HI",
"HI",
"HI",
"4443332111",
"4141413332",
"4113332144",
"3131312444",
"3123114443",
"3111234443",
"2111333444",
"1112333444",
"1112333444",
"1112333444",
"HI",
"HI",
"HI",
"22111",
"21211",
"11122",
"11122",
"11122",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"422111",
"212114",
"211142",
"111224",
"111224",
"111224",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4422111",
"4141221",
"2121144",
"2111442",
"1112244",
"1112244",
"1112244",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44422111",
"41414122",
"41122144",
"21211444",
"21112444",
"11122444",
"11122444",
"11122444",
"HI",
"HI",
"HI",
"HI",
"HI",
"322111",
"212113",
"211132",
"111223",
"111223",
"111223",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4322111",
"3122114",
"2121143",
"2111432",
"1112234",
"1112234",
"1112234",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44322111",
"41413221",
"31122144",
"21211443",
"21112443",
"11122344",
"11122344",
"11122344",
"HI",
"HI",
"HI",
"HI",
"HI",
"444322111",
"414141322",
"411322144",
"311122444",
"212114443",
"211123444",
"111223444",
"111223444",
"111223444",
"HI",
"HI",
"HI",
"HI",
"3322111",
"3131221",
"2121133",
"2111332",
"1112233",
"1112233",
"1112233",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"43322111",
"31312214",
"31122143",
"21211433",
"21112433",
"11122334",
"11122334",
"11122334",
"HI",
"HI",
"HI",
"HI",
"HI",
"443322111",
"414133221",
"312312144",
"311122443",
"212114433",
"211123443",
"111223344",
"111223344",
"111223344",
"HI",
"HI",
"HI",
"HI",
"4443322111",
"4141413322",
"4113322144",
"3122311444",
"3111224443",
"2121134443",
"2111233444",
"1112233444",
"1112233444",
"1112233444",
"HI",
"HI",
"HI",
"33322111",
"31313122",
"31122133",
"21211333",
"21112333",
"11122333",
"11122333",
"11122333",
"HI",
"HI",
"HI",
"HI",
"HI",
"433322111",
"313131224",
"312312143",
"311122433",
"212114333",
"211123433",
"111223334",
"111223334",
"111223334",
"HI",
"HI",
"HI",
"HI",
"4433322111",
"4141333221",
"3131312244",
"3122311443",
"3111224433",
"2121134433",
"2111233443",
"1112233344",
"1112233344",
"1112233344",
"HI",
"HI",
"HI",
"44433322111",
"41414133322",
"41133322144",
"31313122444",
"31223114443",
"31112244433",
"21211334443",
"21112333444",
"11122333444",
"11122333444",
"11122333444",
"HI",
"HI",
"222111",
"212121",
"211122",
"111222",
"111222",
"111222",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"4222111",
"2121214",
"2121142",
"2111422",
"1112224",
"1112224",
"1112224",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"44222111",
"41412221",
"21212144",
"21211442",
"21112442",
"11122244",
"11122244",
"11122244",
"HI",
"HI",
"HI",
"HI",
"HI",
"444222111",
"414141222",
"411222144",
"212121444",
"212114442",
"211122444",
"111222444",
"111222444",
"111222444",
"HI",
"HI",
"HI",
"HI",
"3222111",
"2121213",
"2121132",
"2111322",
"1112223",
"1112223",
"1112223",
"HI",
"HI",
"HI",
"HI",
"HI",
"HI",
"43222111",
"31222114",
"21212134",
"21211432",
"21112432",
"11122234",
"11122234",
"11122234",
"HI",
"HI",
"HI",
"HI",
"HI",
"443222111",
"414132221",
"311222144",
"212121344",
"212114432",
"211122443",
"111222344",
"111222344",
"111222344",
"HI",
"HI",
"HI",
"HI",
"4443222111",
"4141413222",
"4113222144",
"3111222444",
"2121213444",
"2121124443",
"2111223444",
"1112223444",
"1112223444",
"1112223444",
"HI",
"HI",
"HI",
"33222111",
"31312221",
"21212133",
"21211332",
"21112332",
"11122233",
"11122233",
"11122233",
"HI",
"HI",
"HI",
"HI",
"HI",
"433222111",
"313122214",
"311222143",
"212121334",
"212114332",
"211122433",
"111222334",
"111222334",
"111222334",
"HI",
"HI",
"HI",
"HI",
"4433222111",
"4141332221",
"3123122144",
"3111222443",
"2121213344",
"2121124433",
"2111223443",
"1112223344",
"1112223344",
"1112223344",
"HI",
"HI",
"HI",
"44433222111",
"41414133222",
"41133222144",
"31223121444",
"31112224443",
"21212133444",
"21211234443",
"21112233444",
"11122233444",
"11122233444",
"11122233444",
"HI",
"HI",
"333222111",
"313131222",
"311222133",
"212121333",
"212113332",
"211122333",
"111222333",
"111222333",
"111222333",
"HI",
"HI",
"HI",
"HI",
"4333222111",
"3131312224",
"3123123124",
"3111222433",
"2121213334",
"2121124333",
"2111223433",
"1112223334",
"1112223334",
"1112223334",
"HI",
"HI",
"HI",
"44333222111",
"41413332221",
"31231231244",
"31223121443",
"31112224433",
"21212133344",
"21211234433",
"21112233443",
"11122233344",
"11122233344",
"11122233344",
"HI",
"HI",
"444333222111",
"414141333222",
"411333222144",
"312312312444",
"312223114443",
"311122244433",
"212121333444",
"212112334443",
"211122333444",
"111222333444",
"111222333444",
"111222333444",
};
string getans(int a, int b, int c, int d, int e){
	return (ans1[a*832+208*b+52*c+13*d+e]);
}
int D[10];
int ans[1000005];

string solve2(int K){

    	int S = 0;
    	for(int i = 1; i <= 9; i++){
    		S+=D[i];
    	}
    	for(int i = 0; i < S; i++){
    		ans[i] = 0;
    	}
    	
    	int endnums = K-1;
    	for(int i = 9; i >= 1; i--){
    		while(endnums > 0 && D[i] > 0){
    			ans[S-K+endnums] = i;
    			endnums--;
    			D[i]--;
    		}
    		if(D[i] > 0){
    			//ps(i);
    			int space = (S-K+1)/D[i];
    			int num = D[i];
 
    			for(int j = 0; j < S-K+1 && D[i] > 0; j+=space){
    				ans[j] = i;
    				D[i]--;
    			}
    			for(int j = 0; j < S; j++){
    				//cout << ans[j];
    			}
    			//ps();
    			for(int j = 1; j < space; j++){
    				int curco = 0;
    				for(int k = 1; k <= 9; k++){
    					curco+=D[k];
    					if(curco >= num){
    						//ps(k);
    						int dig = 1;
    						for(int l = j; l < S-K+1; l+=space){
    							while(D[dig] == 0) dig++;
    							D[dig]--;
    							ans[l] = dig;
    						}
    						break;
    					}
    					else{
    						
    					}
    				}
    				
    			}
    			
    			for(int j = 0; j < S; j++){
    				//cout << ans[j];
    			}
    			//ps();
    			
    			int dig = 1;
    			
    			for(int i = 0; i < S; i++){
    				if(ans[i] != 0) continue;
    				while(D[dig] == 0) dig++;
    				D[dig]--;
    				ans[i] = dig;
    			}
    		}
    	}
    	string fans = "";
    	for(int i = 0; i < S; i++){
    		fans+=('0'+ans[i]);
    	}
    	return fans;
}
int main() {
	setIO();
    // you should actually read the stuff at the bottom
	//ps(getans(1, 2, 3, 2, 5));
	int T;
	cin >> T;
	for(int i = 0; i < T; i++){
		int K;
		cin >> K;
		vector<bool> cases = {1, 1, 1, 1};
		for(int i = 1; i <= 9; i++){
			cin >> D[i];
			if(i <= 4 && D[i] > 3) cases[1] = 0;
			if(i > 4 && D[i] != 0) cases[1] = 0;
			if(K != 2) cases[2] = 0;
		
		}
		if(cases[1] == 1){
			ps(getans(D[1], D[2], D[3], D[4], K));
		}
		else if(cases[2] == 1){
			ps(solve2(K));
		}
	}
}
 
/* stuff you should look for
	* int overflow, array bounds
	* special cases (n=1?), set tle
	* do smth instead of nothing and stay organized
*/

Compilation message

devil.cpp: In function 'void io::setIn(std::__cxx11::string)':
devil.cpp:135:35: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
     void setIn(string s) { freopen(s.c_str(),"r",stdin); }
                            ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
devil.cpp: In function 'void io::setOut(std::__cxx11::string)':
devil.cpp:136:36: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
     void setOut(string s) { freopen(s.c_str(),"w",stdout); }
                             ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
devil.cpp: In function 'std::__cxx11::string solve2(int)':
devil.cpp:3569:23: warning: array subscript is above array bounds [-Warray-bounds]
            while(D[dig] == 0) dig++;
                  ~~~~~^
devil.cpp:3591:20: warning: array subscript is above array bounds [-Warray-bounds]
         while(D[dig] == 0) dig++;
               ~~~~~^
# Verdict Execution time Memory Grader output
1 Correct 6 ms 504 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 53 ms 1528 KB Output is correct
2 Correct 40 ms 1400 KB Output is correct
3 Correct 39 ms 1528 KB Output is correct
4 Correct 58 ms 1528 KB Output is correct
5 Correct 16 ms 1400 KB Output is correct
6 Correct 16 ms 1400 KB Output is correct
7 Correct 16 ms 1400 KB Output is correct
8 Correct 18 ms 1528 KB Output is correct
9 Correct 14 ms 2012 KB Output is correct
# Verdict Execution time Memory Grader output
1 Incorrect 24 ms 504 KB Token parameter [name=X] equals to "211111112111111121111111211111112111111112", doesn't correspond to pattern "[0-9]{26}"
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 6 ms 504 KB Output is correct
2 Correct 53 ms 1528 KB Output is correct
3 Correct 40 ms 1400 KB Output is correct
4 Correct 39 ms 1528 KB Output is correct
5 Correct 58 ms 1528 KB Output is correct
6 Correct 16 ms 1400 KB Output is correct
7 Correct 16 ms 1400 KB Output is correct
8 Correct 16 ms 1400 KB Output is correct
9 Correct 18 ms 1528 KB Output is correct
10 Correct 14 ms 2012 KB Output is correct
11 Incorrect 24 ms 504 KB Token parameter [name=X] equals to "211111112111111121111111211111112111111112", doesn't correspond to pattern "[0-9]{26}"
12 Halted 0 ms 0 KB -