/* ___
_______________| |_
/\ \
/ \ \
/____\__________________\
| | |
| | Date : [DATE] |
| | Author : pppssslc|
|____|__________________|
*/
#include<bits/stdc++.h>
using namespace std;
template<class X, class Y> void mini(X &x, const Y &y){
x = min(x, y);
}
template<class X, class Y> void maxi(X &x, const Y &y){
x = max(x, y);
}
typedef string str;
typedef long long ll;
typedef unsigned long long ull;
typedef double db;
typedef long double ldb;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<vector<int>> vii;
typedef vector<vector<ll>> vll;
typedef map<int, int> mpii;
typedef map<ll, ll> mpll;
typedef set<int> si;
typedef set<ll> sl;
typedef complex<double> cd;
#define prio_que priority_queue
#define se second
#define fi first
#define For(i, l, r, x) for(int i = l; i <= r; i += x)
#define Ford(i, l, r, x) for(int i = l; i >= r; i -= x)
#define Fore(x, a) for(auto x: a)
#define pb push_back
#define ins insert
#define all(a) a.begin(), a.end()
#define codecuapppssslc main()
const ll inf = 1e18 + 1;
const int mod = 10;
const int maxn = 1e5 + 1;
const db PI = acos(-1);
int codecuapppssslc{
ios_base::sync_with_stdio(false);
cin.tie(nullptr); cout.tie(nullptr);
return (0 ^ 0);
}
LyogICAgICAgICAgICAgICAgX19fCiAgIF9fX19fX19fX19fX19fX3wgfF8KICAvXCAgICAgICAgICAgICAgICAgIFwKIC8gIFwgICAgICAgICAgICAgICAgICBcCi9fX19fXF9fX19fX19fX19fX19fX19fX1wKfCAgICB8ICAgICAgICAgICAgICAgICAgfAp8ICAgIHwgRGF0ZSA6IFtEQVRFXSAgICB8CnwgICAgfCBBdXRob3IgOiBwcHBzc3NsY3wKfF9fX198X19fX19fX19fX19fX19fX19ffAoqLwojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlPGNsYXNzIFgsIGNsYXNzIFk+IHZvaWQgbWluaShYICZ4LCBjb25zdCBZICZ5KXsKCXggPSBtaW4oeCwgeSk7Cn0KCnRlbXBsYXRlPGNsYXNzIFgsIGNsYXNzIFk+IHZvaWQgbWF4aShYICZ4LCBjb25zdCBZICZ5KXsKCXggPSBtYXgoeCwgeSk7Cn0KCnR5cGVkZWYgc3RyaW5nIHN0cjsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIHVsbDsKdHlwZWRlZiBkb3VibGUgZGI7CnR5cGVkZWYgbG9uZyBkb3VibGUgbGRiOwp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IHBpaTsKdHlwZWRlZiBwYWlyPGxsLCBsbD4gcGxsOwp0eXBlZGVmIHZlY3RvcjxpbnQ+IHZpOwp0eXBlZGVmIHZlY3RvcjxsbD4gdmw7CnR5cGVkZWYgdmVjdG9yPHZlY3RvcjxpbnQ+PiB2aWk7CnR5cGVkZWYgdmVjdG9yPHZlY3RvcjxsbD4+IHZsbDsKdHlwZWRlZiBtYXA8aW50LCBpbnQ+IG1waWk7CnR5cGVkZWYgbWFwPGxsLCBsbD4gbXBsbDsKdHlwZWRlZiBzZXQ8aW50PiBzaTsKdHlwZWRlZiBzZXQ8bGw+IHNsOwp0eXBlZGVmIGNvbXBsZXg8ZG91YmxlPiBjZDsKI2RlZmluZSBwcmlvX3F1ZSBwcmlvcml0eV9xdWV1ZQoKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIEZvcihpLCBsLCByLCB4KSBmb3IoaW50IGkgPSBsOyBpIDw9IHI7IGkgKz0geCkKI2RlZmluZSBGb3JkKGksIGwsIHIsIHgpIGZvcihpbnQgaSA9IGw7IGkgPj0gcjsgaSAtPSB4KQojZGVmaW5lIEZvcmUoeCwgYSkgZm9yKGF1dG8geDogYSkKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBpbnMgaW5zZXJ0CiNkZWZpbmUgYWxsKGEpIGEuYmVnaW4oKSwgYS5lbmQoKQoKI2RlZmluZSBjb2RlY3VhcHBwc3NzbGMgbWFpbigpCgpjb25zdCBsbCBpbmYgPSAxZTE4ICsgMTsKY29uc3QgaW50IG1vZCA9IDEwOwpjb25zdCBpbnQgbWF4biA9IDFlNSArIDE7CmNvbnN0IGRiIFBJID0gYWNvcygtMSk7CgppbnQgY29kZWN1YXBwcHNzc2xjewoJaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CgljaW4udGllKG51bGxwdHIpOyBjb3V0LnRpZShudWxscHRyKTsKCQoJcmV0dXJuICgwIF4gMCk7Cn0K