//#pragma GCC optimize("O3", "unroll-loops")
//#pragma GCC target("avx2", "bmi", "bmi2", "lzcnt", "popcnt")
#include <bits/stdc++.h>
#define ldb long double
//#define double ldb
#define db double
#define unomap unordered_map
#define unoset unordered_set
#define endl '\n'
#define str string
#define strstr stringstream
#define sz(a) (int)a.size()
#define ll long long
//#define int ll
#define pii pair <int, int>
#define pll pair <ll, ll>
#define Unique(a) a.resize(unique(all(a)) - a.begin())
#define ull unsigned ll
#define fir first
#define sec second
#define idc cin.ignore()
#define lb lower_bound
#define ub upper_bound
#define all(s) s.begin(), s.end()
#define rev reverse
#define gcd __gcd
#define pushb push_back
#define popb pop_back
#define pushf push_front
#define popf pop_front
#define mul2x(a, x) a << x
#define div2x(a, x) a >> x
#define lcm(a, b) (a / __gcd(a, b) * b)
#define log_base(x, base) log(x) / log(base)
#define debug cerr << "No errors!"; exit(0);
#define forw(i, a, b) for (int i = a; i <= b; ++i)
#define forw2(i, a, b) for (ll i = a; i <= b; ++i)
#define fors(i, a, b) for (int i = a; i >= b; --i)
#define fors2(i, a, b) for (ll i = a; i >= b; --i)
#define pqueue priority_queue
#define sqrt sqrtl
#define i128 __int128
#define popcount __builtin_popcountll
#define BIT(x, i) (((x) >> (i)) & 1)
#define MASK(x) ((1LL) << (x))
#define want_digit(x) cout << fixed << setprecision(x);
#define excuting_time 1000.0 * clock() / CLOCKS_PER_SEC
#define mapa make_pair
using namespace std;
const int MOD = 1e9 + 7; // 998244353
const int inf = 1e9;
const ll INF = 1e18;
const int N = 100;
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
ll random(const ll &L, const ll &R) {
return uniform_int_distribution<ll> (L, R) (rng);
}
template <class X, class Y>
bool maximize(X &x, const Y &y) {
return x < y ? x = y, true : false;
}
int n, k, a[N * 2 + 5][N * 2 + 5];
ll dp[N * 2 + 5][N * 2 + 5][2];
ll mx[N * 2 + 5];
void sub1() {
forw (i, 1, n) {
dp[1][i][0] = a[1][i];
dp[1][i][1] = mx[1];
}
forw (i, 1, n - 1) {
forw (j, 1, n + i - 1) {
forw (p, 0, 1) {
maximize(dp[i + 1][j][p], dp[i][j][p] + a[i + 1][j]);
maximize(dp[i + 1][j + 1][p], dp[i][j][p] + a[i + 1][j + 1]);
if (p) {
ll tmp = dp[i][j][0] + mx[i + 1];
maximize(dp[i + 1][j][1], tmp);
maximize(dp[i + 1][j + 1][1], tmp);
}
}
}
}
forw (i, n, n * 2 - 2) {
forw (j, 1, 3 * n - i - 1) {
forw (p, 0, 1) {
maximize(dp[i + 1][j][p], dp[i][j][p] + a[i + 1][j]);
maximize(dp[i + 1][j - 1][p], dp[i][j][p] + a[i + 1][j - 1]);
if (p) {
ll tmp = dp[i][j][0] + mx[i + 1];
maximize(dp[i + 1][j][1], tmp);
maximize(dp[i + 1][j - 1][1], tmp);
}
}
}
}
ll ans = 0;
forw (i, 1, n) maximize(ans, max(dp[n * 2 - 1][i][0], dp[n * 2 - 1][i][1]));
cout << ans << endl;
}
ll f[N * 2 + 5][N * 2 + 5][2][N * 2 + 5][2];
void sub2() {
forw (i, 1, n) {
forw (j, i + 1, n) {
f[1][i][0][j][0] = a[1][i] + a[1][j];
f[1][i][1][j][0] = mx[1] + a[1][j];
f[1][i][0][j][1] = a[1][i] + mx[1];
f[1][i][1][j][1] = mx[1] + mx[1];
}
}
forw (i, 1, n - 1) {
int lim = n + i - 1;
forw (j, 1, lim) {
forw (used1, 0, 1) {
forw (p, j + 1, lim) {
forw (used2, 0, 1) {
ll curr = f[i][j][used1][p][used2];
forw (add1, 0, 1) forw (add2, 0, 1) {
int _j = j + add1, _p = p + add2;
if (_j >= _p) continue;
maximize(f[i + 1][_j][used1][_p][used2], curr + a[i + 1][_j] + a[i + 1][_p]);
if (!used1)
maximize(f[i + 1][_j][1][_p][used2], curr + mx[i + 1] + a[i + 1][_p]);
if (!used2)
maximize(f[i + 1][_j][used1][_p][1], curr + a[i + 1][_j] + mx[i + 1]);
if (!(used1 | used2))
maximize(f[i + 1][_j][1][_p][1], curr + (mx[i + 1] << 1));
}
}
}
}
}
}
forw (i, n, n * 2 - 2) {
int lim = 3 * n - i - 1;
forw (j, 1, lim) {
forw (used1, 0, 1) {
forw (p, j + 1, lim) {
forw (used2, 0, 1) {
ll curr = f[i][j][used1][p][used2];
forw (add1, -1, 0) forw (add2, -1, 0) {
int _j = j + add1, _p = p + add2;
if (_j >= _p) continue;
maximize(f[i + 1][_j][used1][_p][used2], curr + a[i + 1][_j] + a[i + 1][_p]);
if (!used1)
maximize(f[i + 1][_j][1][_p][used2], curr + mx[i + 1] + a[i + 1][_p]);
if (!used2)
maximize(f[i + 1][_j][used1][_p][1], curr + a[i + 1][_j] + mx[i + 1]);
if (!(used1 | used2))
maximize(f[i + 1][_j][1][_p][1], curr + (mx[i + 1] << 1));
}
}
}
}
}
}
ll ans = 0;
forw (i, 1, n) forw (j, i + 1, n) {
forw (used1, 0, 1) forw (used2, 0, 1) {
maximize(ans, f[n * 2 - 1][i][used1][j][used2]);
}
}
cout << ans << endl;
}
void solve() {
cin >> n >> k;
forw (i, 1, n * 2 - 1) {
forw (j, 1, (i <= n ? n + i - 1 : 3 * n - 1 - i))
cin >> a[i][j], maximize(mx[i], a[i][j]);
}
if (k == 1) sub1();
else sub2();
}
signed main() {
ios::sync_with_stdio(false), cin.tie(nullptr);
srand(time(NULL));
#define name "test"
/*
if (fopen(name".INP", "r")) {
freopen(name".INP", "r", stdin);
freopen(name".OUT", "w", stdout);
}
*/
bool testCase = false;
int numTest = 1;
// cin >> numTest;
forw (i, 1, numTest) {
if (testCase) cout << "Case " << i << ": ";
solve();
}
return 0;
}
Ly8jcHJhZ21hIEdDQyBvcHRpbWl6ZSgiTzMiLCAidW5yb2xsLWxvb3BzIikKLy8jcHJhZ21hIEdDQyB0YXJnZXQoImF2eDIiLCAiYm1pIiwgImJtaTIiLCAibHpjbnQiLCAicG9wY250IikKCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgojZGVmaW5lIGxkYiBsb25nIGRvdWJsZQovLyNkZWZpbmUgZG91YmxlIGxkYgojZGVmaW5lIGRiIGRvdWJsZQojZGVmaW5lIHVub21hcCB1bm9yZGVyZWRfbWFwCiNkZWZpbmUgdW5vc2V0IHVub3JkZXJlZF9zZXQKI2RlZmluZSBlbmRsICdcbicKI2RlZmluZSBzdHIgc3RyaW5nCiNkZWZpbmUgc3Ryc3RyIHN0cmluZ3N0cmVhbQojZGVmaW5lIHN6KGEpIChpbnQpYS5zaXplKCkKI2RlZmluZSBsbCBsb25nIGxvbmcKLy8jZGVmaW5lIGludCBsbAojZGVmaW5lIHBpaSBwYWlyIDxpbnQsIGludD4KI2RlZmluZSBwbGwgcGFpciA8bGwsIGxsPgojZGVmaW5lIFVuaXF1ZShhKSBhLnJlc2l6ZSh1bmlxdWUoYWxsKGEpKSAtIGEuYmVnaW4oKSkKI2RlZmluZSB1bGwgdW5zaWduZWQgbGwKI2RlZmluZSBmaXIgZmlyc3QKI2RlZmluZSBzZWMgc2Vjb25kCiNkZWZpbmUgaWRjIGNpbi5pZ25vcmUoKQojZGVmaW5lIGxiIGxvd2VyX2JvdW5kCiNkZWZpbmUgdWIgdXBwZXJfYm91bmQKI2RlZmluZSBhbGwocykgcy5iZWdpbigpLCBzLmVuZCgpCiNkZWZpbmUgcmV2IHJldmVyc2UKI2RlZmluZSBnY2QgX19nY2QKI2RlZmluZSBwdXNoYiBwdXNoX2JhY2sKI2RlZmluZSBwb3BiIHBvcF9iYWNrCiNkZWZpbmUgcHVzaGYgcHVzaF9mcm9udAojZGVmaW5lIHBvcGYgcG9wX2Zyb250CiNkZWZpbmUgbXVsMngoYSwgeCkgYSA8PCB4CiNkZWZpbmUgZGl2MngoYSwgeCkgYSA+PiB4CiNkZWZpbmUgbGNtKGEsIGIpIChhIC8gX19nY2QoYSwgYikgKiBiKQojZGVmaW5lIGxvZ19iYXNlKHgsIGJhc2UpIGxvZyh4KSAvIGxvZyhiYXNlKQojZGVmaW5lIGRlYnVnIGNlcnIgPDwgIk5vIGVycm9ycyEiOyBleGl0KDApOwojZGVmaW5lIGZvcncoaSwgYSwgYikgZm9yIChpbnQgaSA9IGE7IGkgPD0gYjsgKytpKQojZGVmaW5lIGZvcncyKGksIGEsIGIpIGZvciAobGwgaSA9IGE7IGkgPD0gYjsgKytpKQojZGVmaW5lIGZvcnMoaSwgYSwgYikgZm9yIChpbnQgaSA9IGE7IGkgPj0gYjsgLS1pKQojZGVmaW5lIGZvcnMyKGksIGEsIGIpIGZvciAobGwgaSA9IGE7IGkgPj0gYjsgLS1pKQojZGVmaW5lIHBxdWV1ZSBwcmlvcml0eV9xdWV1ZQojZGVmaW5lIHNxcnQgc3FydGwKI2RlZmluZSBpMTI4IF9faW50MTI4CiNkZWZpbmUgcG9wY291bnQgX19idWlsdGluX3BvcGNvdW50bGwKI2RlZmluZSBCSVQoeCwgaSkgKCgoeCkgPj4gKGkpKSAmIDEpCiNkZWZpbmUgTUFTSyh4KSAoKDFMTCkgPDwgKHgpKQojZGVmaW5lIHdhbnRfZGlnaXQoeCkgY291dCA8PCBmaXhlZCA8PCBzZXRwcmVjaXNpb24oeCk7CiNkZWZpbmUgZXhjdXRpbmdfdGltZSAxMDAwLjAgKiBjbG9jaygpIC8gQ0xPQ0tTX1BFUl9TRUMKI2RlZmluZSBtYXBhIG1ha2VfcGFpcgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBpbnQgTU9EID0gMWU5ICsgNzsgLy8gOTk4MjQ0MzUzCmNvbnN0IGludCBpbmYgPSAxZTk7CmNvbnN0IGxsIElORiA9IDFlMTg7CmNvbnN0IGludCBOID0gMTAwOwoKbXQxOTkzN182NCBybmcoY2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpLnRpbWVfc2luY2VfZXBvY2goKS5jb3VudCgpKTsKbGwgcmFuZG9tKGNvbnN0IGxsICZMLCBjb25zdCBsbCAmUikgewogICAgcmV0dXJuIHVuaWZvcm1faW50X2Rpc3RyaWJ1dGlvbjxsbD4gKEwsIFIpIChybmcpOwp9Cgp0ZW1wbGF0ZSA8Y2xhc3MgWCwgY2xhc3MgWT4KYm9vbCBtYXhpbWl6ZShYICZ4LCBjb25zdCBZICZ5KSB7CiAgICByZXR1cm4geCA8IHkgPyB4ID0geSwgdHJ1ZSA6IGZhbHNlOwp9CgppbnQgbiwgaywgYVtOICogMiArIDVdW04gKiAyICsgNV07CgpsbCBkcFtOICogMiArIDVdW04gKiAyICsgNV1bMl07CmxsIG14W04gKiAyICsgNV07CnZvaWQgc3ViMSgpIHsKICAgIGZvcncgKGksIDEsIG4pIHsKICAgICAgICBkcFsxXVtpXVswXSA9IGFbMV1baV07CiAgICAgICAgZHBbMV1baV1bMV0gPSBteFsxXTsKICAgIH0KCiAgICBmb3J3IChpLCAxLCBuIC0gMSkgewogICAgICAgIGZvcncgKGosIDEsIG4gKyBpIC0gMSkgewogICAgICAgICAgICBmb3J3IChwLCAwLCAxKSB7CiAgICAgICAgICAgICAgICBtYXhpbWl6ZShkcFtpICsgMV1bal1bcF0sIGRwW2ldW2pdW3BdICsgYVtpICsgMV1bal0pOwogICAgICAgICAgICAgICAgbWF4aW1pemUoZHBbaSArIDFdW2ogKyAxXVtwXSwgZHBbaV1bal1bcF0gKyBhW2kgKyAxXVtqICsgMV0pOwogICAgICAgICAgICAgICAgaWYgKHApIHsKICAgICAgICAgICAgICAgICAgICBsbCB0bXAgPSBkcFtpXVtqXVswXSArIG14W2kgKyAxXTsKICAgICAgICAgICAgICAgICAgICBtYXhpbWl6ZShkcFtpICsgMV1bal1bMV0sIHRtcCk7CiAgICAgICAgICAgICAgICAgICAgbWF4aW1pemUoZHBbaSArIDFdW2ogKyAxXVsxXSwgdG1wKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBmb3J3IChpLCBuLCBuICogMiAtIDIpIHsKICAgICAgICBmb3J3IChqLCAxLCAzICogbiAtIGkgLSAxKSB7CiAgICAgICAgICAgIGZvcncgKHAsIDAsIDEpIHsKICAgICAgICAgICAgICAgIG1heGltaXplKGRwW2kgKyAxXVtqXVtwXSwgZHBbaV1bal1bcF0gKyBhW2kgKyAxXVtqXSk7CiAgICAgICAgICAgICAgICBtYXhpbWl6ZShkcFtpICsgMV1baiAtIDFdW3BdLCBkcFtpXVtqXVtwXSArIGFbaSArIDFdW2ogLSAxXSk7CiAgICAgICAgICAgICAgICBpZiAocCkgewogICAgICAgICAgICAgICAgICAgIGxsIHRtcCA9IGRwW2ldW2pdWzBdICsgbXhbaSArIDFdOwogICAgICAgICAgICAgICAgICAgIG1heGltaXplKGRwW2kgKyAxXVtqXVsxXSwgdG1wKTsKICAgICAgICAgICAgICAgICAgICBtYXhpbWl6ZShkcFtpICsgMV1baiAtIDFdWzFdLCB0bXApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGxsIGFucyA9IDA7CiAgICBmb3J3IChpLCAxLCBuKSBtYXhpbWl6ZShhbnMsIG1heChkcFtuICogMiAtIDFdW2ldWzBdLCBkcFtuICogMiAtIDFdW2ldWzFdKSk7CiAgICBjb3V0IDw8IGFucyA8PCBlbmRsOwp9CgpsbCBmW04gKiAyICsgNV1bTiAqIDIgKyA1XVsyXVtOICogMiArIDVdWzJdOwp2b2lkIHN1YjIoKSB7CiAgICBmb3J3IChpLCAxLCBuKSB7CiAgICAgICAgZm9ydyAoaiwgaSArIDEsIG4pIHsKICAgICAgICAgICAgZlsxXVtpXVswXVtqXVswXSA9IGFbMV1baV0gKyBhWzFdW2pdOwogICAgICAgICAgICBmWzFdW2ldWzFdW2pdWzBdID0gbXhbMV0gKyBhWzFdW2pdOwogICAgICAgICAgICBmWzFdW2ldWzBdW2pdWzFdID0gYVsxXVtpXSArIG14WzFdOwogICAgICAgICAgICBmWzFdW2ldWzFdW2pdWzFdID0gbXhbMV0gKyBteFsxXTsKICAgICAgICB9CiAgICB9CgogICAgZm9ydyAoaSwgMSwgbiAtIDEpIHsKICAgICAgICBpbnQgbGltID0gbiArIGkgLSAxOwogICAgICAgIGZvcncgKGosIDEsIGxpbSkgewogICAgICAgICAgICBmb3J3ICh1c2VkMSwgMCwgMSkgewogICAgICAgICAgICAgICAgZm9ydyAocCwgaiArIDEsIGxpbSkgewogICAgICAgICAgICAgICAgICAgIGZvcncgKHVzZWQyLCAwLCAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGxsIGN1cnIgPSBmW2ldW2pdW3VzZWQxXVtwXVt1c2VkMl07CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcncgKGFkZDEsIDAsIDEpIGZvcncgKGFkZDIsIDAsIDEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBfaiA9IGogKyBhZGQxLCBfcCA9IHAgKyBhZGQyOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9qID49IF9wKSBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGltaXplKGZbaSArIDFdW19qXVt1c2VkMV1bX3BdW3VzZWQyXSwgY3VyciArIGFbaSArIDFdW19qXSArIGFbaSArIDFdW19wXSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXVzZWQxKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heGltaXplKGZbaSArIDFdW19qXVsxXVtfcF1bdXNlZDJdLCBjdXJyICsgbXhbaSArIDFdICsgYVtpICsgMV1bX3BdKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdXNlZDIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW1pemUoZltpICsgMV1bX2pdW3VzZWQxXVtfcF1bMV0sIGN1cnIgKyBhW2kgKyAxXVtfal0gKyBteFtpICsgMV0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEodXNlZDEgfCB1c2VkMikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW1pemUoZltpICsgMV1bX2pdWzFdW19wXVsxXSwgY3VyciArIChteFtpICsgMV0gPDwgMSkpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIGZvcncgKGksIG4sIG4gKiAyIC0gMikgewogICAgICAgIGludCBsaW0gPSAzICogbiAtIGkgLSAxOwogICAgICAgIGZvcncgKGosIDEsIGxpbSkgewogICAgICAgICAgICBmb3J3ICh1c2VkMSwgMCwgMSkgewogICAgICAgICAgICAgICAgZm9ydyAocCwgaiArIDEsIGxpbSkgewogICAgICAgICAgICAgICAgICAgIGZvcncgKHVzZWQyLCAwLCAxKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGxsIGN1cnIgPSBmW2ldW2pdW3VzZWQxXVtwXVt1c2VkMl07CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcncgKGFkZDEsIC0xLCAwKSBmb3J3IChhZGQyLCAtMSwgMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9qID0gaiArIGFkZDEsIF9wID0gcCArIGFkZDI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2ogPj0gX3ApIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW1pemUoZltpICsgMV1bX2pdW3VzZWQxXVtfcF1bdXNlZDJdLCBjdXJyICsgYVtpICsgMV1bX2pdICsgYVtpICsgMV1bX3BdKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdXNlZDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4aW1pemUoZltpICsgMV1bX2pdWzFdW19wXVt1c2VkMl0sIGN1cnIgKyBteFtpICsgMV0gKyBhW2kgKyAxXVtfcF0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF1c2VkMikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhpbWl6ZShmW2kgKyAxXVtfal1bdXNlZDFdW19wXVsxXSwgY3VyciArIGFbaSArIDFdW19qXSArIG14W2kgKyAxXSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISh1c2VkMSB8IHVzZWQyKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhpbWl6ZShmW2kgKyAxXVtfal1bMV1bX3BdWzFdLCBjdXJyICsgKG14W2kgKyAxXSA8PCAxKSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgbGwgYW5zID0gMDsKICAgIGZvcncgKGksIDEsIG4pIGZvcncgKGosIGkgKyAxLCBuKSB7CiAgICAgICAgZm9ydyAodXNlZDEsIDAsIDEpIGZvcncgKHVzZWQyLCAwLCAxKSB7CiAgICAgICAgICAgIG1heGltaXplKGFucywgZltuICogMiAtIDFdW2ldW3VzZWQxXVtqXVt1c2VkMl0pOwogICAgICAgIH0KICAgIH0KICAgIGNvdXQgPDwgYW5zIDw8IGVuZGw7Cn0KCnZvaWQgc29sdmUoKSB7CiAgICBjaW4gPj4gbiA+PiBrOwogICAgZm9ydyAoaSwgMSwgbiAqIDIgLSAxKSB7CiAgICAgICAgZm9ydyAoaiwgMSwgKGkgPD0gbiA/IG4gKyBpIC0gMSA6IDMgKiBuIC0gMSAtIGkpKQogICAgICAgICAgICBjaW4gPj4gYVtpXVtqXSwgbWF4aW1pemUobXhbaV0sIGFbaV1bal0pOwogICAgfQogICAgaWYgKGsgPT0gMSkgc3ViMSgpOwogICAgZWxzZSBzdWIyKCk7Cn0KCnNpZ25lZCBtYWluKCkgewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpLCBjaW4udGllKG51bGxwdHIpOwogICAgc3JhbmQodGltZShOVUxMKSk7CiAgICAjZGVmaW5lIG5hbWUgInRlc3QiCiAgICAvKgogICAgaWYgKGZvcGVuKG5hbWUiLklOUCIsICJyIikpIHsKICAgICAgICBmcmVvcGVuKG5hbWUiLklOUCIsICJyIiwgc3RkaW4pOwogICAgICAgIGZyZW9wZW4obmFtZSIuT1VUIiwgInciLCBzdGRvdXQpOwogICAgfQogICAgKi8KICAgIGJvb2wgdGVzdENhc2UgPSBmYWxzZTsKICAgIGludCBudW1UZXN0ID0gMTsKLy8gICAgY2luID4+IG51bVRlc3Q7CiAgICBmb3J3IChpLCAxLCBudW1UZXN0KSB7CiAgICAgICAgaWYgKHRlc3RDYXNlKSBjb3V0IDw8ICJDYXNlICIgPDwgaSA8PCAiOiAiOwogICAgICAgIHNvbHZlKCk7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=