// Author: 4uckd3v - Nguyen Cao Duc
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAX_N = 1e3;
const int MOD = 1e9 + 7;
const string br = "([{)}]";
const ll INF = 2e18;
int n, k;
ll kth;
string st;
ll dp[MAX_N + 5][MAX_N + 5][2];
bool open(char c) {
return c == '(' || c == '[' || c == '{';
};
bool matchBracket(char o, char c) {
return (o == '(' && c == ')') || (o == '[' && c == ']') || (o == '{' && c == '}');
};
ll DP(int idx, int diff, bool ok) {
if (idx > n) return (diff == 0 && ok);
if (dp[idx][diff][ok] != -1) return dp[idx][diff][ok];
ll &ret = dp[idx][diff][ok] = 0;
if (diff > 0) ret += DP(idx + 1, diff - 1, ok);
if (diff < k) ret += DP(idx + 1, diff + 1, ok || (diff + 1) == k) * 3;
ret = min(ret, INF);
return ret;
};
ll getRank(const string &st) {
int diff = 0;
bool ok = false;
ll rank = 1;
stack<char> match;
for (int i = 1; i <= n; i++) {
for (char ch : br) {
if (ch == st[i]) break;
if (diff < k && open(ch)) rank += DP(i + 1, diff + 1, ok || (diff + 1) == k);
if (diff > 0 && !open(ch)) {
if (!match.empty() && matchBracket(match.top(), ch))
rank += DP(i + 1, diff - 1, ok);
}
};
if (open(st[i])) {
match.push(st[i]);
diff++;
ok |= diff == k;
} else {
match.pop();
diff--;
};
};
return rank;
};
string getKth(ll kth) {
int diff = 0;
bool ok = false;
string ret;
stack<char> match;
for (int i = 1; i <= n; i++) {
ll cur = 0;
for (char ch : br) {
if (diff < k && open(ch)) {
if (cur + DP(i + 1, diff + 1, ok || (diff + 1) == k) >= kth) {
ret += ch;
kth -= cur;
diff++;
ok |= diff == k;
match.push(ch);
break;
} else
cur += DP(i + 1, diff + 1, ok || (diff + 1) == k);
};
if (diff > 0 && !open(ch) && !match.empty() && matchBracket(match.top(), ch)) {
if (cur + DP(i + 1, diff - 1, ok) >= kth) {
ret += ch;
kth -= cur;
diff--;
match.pop();
break;
} else
cur += DP(i + 1, diff - 1, ok);
};
};
};
return ret;
};
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
if (fopen("BRCNT1.INP", "r")) {
freopen("BRCNT1.INP", "r", stdin);
freopen("BRCNT1.OUT", "w", stdout);
};
cin >> n >> k >> st >> kth;
st = " " + st;
memset(dp, -1, sizeof dp);
DP(1, 0, 0);
cout << getRank(st) << '\n';
cout << getKth(kth) << '\n';
};
Ly8gQXV0aG9yOiA0dWNrZDN2IC0gTmd1eWVuIENhbyBEdWMKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKCmNvbnN0IGludCBNQVhfTiA9IDFlMzsKY29uc3QgaW50IE1PRCA9IDFlOSArIDc7CmNvbnN0IHN0cmluZyBiciA9ICIoW3spfV0iOwpjb25zdCBsbCBJTkYgPSAyZTE4OwoKaW50IG4sIGs7CmxsIGt0aDsKc3RyaW5nIHN0OwpsbCBkcFtNQVhfTiArIDVdW01BWF9OICsgNV1bMl07Cgpib29sIG9wZW4oY2hhciBjKSB7CiAgICByZXR1cm4gYyA9PSAnKCcgfHwgYyA9PSAnWycgfHwgYyA9PSAneyc7Cn07Cgpib29sIG1hdGNoQnJhY2tldChjaGFyIG8sIGNoYXIgYykgewogICAgcmV0dXJuIChvID09ICcoJyAmJiBjID09ICcpJykgfHwgKG8gPT0gJ1snICYmIGMgPT0gJ10nKSB8fCAobyA9PSAneycgJiYgYyA9PSAnfScpOwp9OwoKbGwgRFAoaW50IGlkeCwgaW50IGRpZmYsIGJvb2wgb2spIHsKICAgIGlmIChpZHggPiBuKSByZXR1cm4gKGRpZmYgPT0gMCAmJiBvayk7CiAgICBpZiAoZHBbaWR4XVtkaWZmXVtva10gIT0gLTEpIHJldHVybiBkcFtpZHhdW2RpZmZdW29rXTsKCiAgICBsbCAmcmV0ID0gZHBbaWR4XVtkaWZmXVtva10gPSAwOwogICAgaWYgKGRpZmYgPiAwKSByZXQgKz0gRFAoaWR4ICsgMSwgZGlmZiAtIDEsIG9rKTsKICAgIGlmIChkaWZmIDwgaykgcmV0ICs9IERQKGlkeCArIDEsIGRpZmYgKyAxLCBvayB8fCAoZGlmZiArIDEpID09IGspICogMzsKCiAgICByZXQgPSBtaW4ocmV0LCBJTkYpOwoKICAgIHJldHVybiByZXQ7Cn07CgpsbCBnZXRSYW5rKGNvbnN0IHN0cmluZyAmc3QpIHsKICAgIGludCBkaWZmID0gMDsKICAgIGJvb2wgb2sgPSBmYWxzZTsKICAgIGxsIHJhbmsgPSAxOwoKICAgIHN0YWNrPGNoYXI+IG1hdGNoOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgZm9yIChjaGFyIGNoIDogYnIpIHsKICAgICAgICAgICAgaWYgKGNoID09IHN0W2ldKSBicmVhazsKICAgICAgICAgICAgaWYgKGRpZmYgPCBrICYmIG9wZW4oY2gpKSByYW5rICs9IERQKGkgKyAxLCBkaWZmICsgMSwgb2sgfHwgKGRpZmYgKyAxKSA9PSBrKTsKICAgICAgICAgICAgaWYgKGRpZmYgPiAwICYmICFvcGVuKGNoKSkgewogICAgICAgICAgICAgICAgaWYgKCFtYXRjaC5lbXB0eSgpICYmIG1hdGNoQnJhY2tldChtYXRjaC50b3AoKSwgY2gpKQogICAgICAgICAgICAgICAgICAgIHJhbmsgKz0gRFAoaSArIDEsIGRpZmYgLSAxLCBvayk7CiAgICAgICAgICAgIH0KICAgICAgICB9OwoKICAgICAgICBpZiAob3BlbihzdFtpXSkpIHsKICAgICAgICAgICAgbWF0Y2gucHVzaChzdFtpXSk7CiAgICAgICAgICAgIGRpZmYrKzsKICAgICAgICAgICAgb2sgfD0gZGlmZiA9PSBrOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG1hdGNoLnBvcCgpOwogICAgICAgICAgICBkaWZmLS07CiAgICAgICAgfTsKICAgIH07CgogICAgcmV0dXJuIHJhbms7Cn07CgpzdHJpbmcgZ2V0S3RoKGxsIGt0aCkgewogICAgaW50IGRpZmYgPSAwOwogICAgYm9vbCBvayA9IGZhbHNlOwogICAgc3RyaW5nIHJldDsKICAgIHN0YWNrPGNoYXI+IG1hdGNoOwoKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewogICAgICAgIGxsIGN1ciA9IDA7CiAgICAgICAgZm9yIChjaGFyIGNoIDogYnIpIHsKICAgICAgICAgICAgaWYgKGRpZmYgPCBrICYmIG9wZW4oY2gpKSB7CiAgICAgICAgICAgICAgICBpZiAoY3VyICsgRFAoaSArIDEsIGRpZmYgKyAxLCBvayB8fCAoZGlmZiArIDEpID09IGspID49IGt0aCkgewogICAgICAgICAgICAgICAgICAgIHJldCArPSBjaDsKICAgICAgICAgICAgICAgICAgICBrdGggLT0gY3VyOwogICAgICAgICAgICAgICAgICAgIGRpZmYrKzsKICAgICAgICAgICAgICAgICAgICBvayB8PSBkaWZmID09IGs7CiAgICAgICAgICAgICAgICAgICAgbWF0Y2gucHVzaChjaCk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICBjdXIgKz0gRFAoaSArIDEsIGRpZmYgKyAxLCBvayB8fCAoZGlmZiArIDEpID09IGspOwogICAgICAgICAgICB9OwogICAgICAgICAgICBpZiAoZGlmZiA+IDAgJiYgIW9wZW4oY2gpICYmICFtYXRjaC5lbXB0eSgpICYmIG1hdGNoQnJhY2tldChtYXRjaC50b3AoKSwgY2gpKSB7CiAgICAgICAgICAgICAgICBpZiAoY3VyICsgRFAoaSArIDEsIGRpZmYgLSAxLCBvaykgPj0ga3RoKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0ICs9IGNoOwogICAgICAgICAgICAgICAgICAgIGt0aCAtPSBjdXI7CiAgICAgICAgICAgICAgICAgICAgZGlmZi0tOwogICAgICAgICAgICAgICAgICAgIG1hdGNoLnBvcCgpOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgICAgY3VyICs9IERQKGkgKyAxLCBkaWZmIC0gMSwgb2spOwogICAgICAgICAgICB9OwogICAgICAgIH07CiAgICB9OwoKICAgIHJldHVybiByZXQ7Cn07CgppbnQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwogICAgaWYgKGZvcGVuKCJCUkNOVDEuSU5QIiwgInIiKSkgewogICAgICAgIGZyZW9wZW4oIkJSQ05UMS5JTlAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKCJCUkNOVDEuT1VUIiwgInciLCBzdGRvdXQpOwogICAgfTsKCiAgICBjaW4gPj4gbiA+PiBrID4+IHN0ID4+IGt0aDsKICAgIHN0ID0gIiAiICsgc3Q7CgogICAgbWVtc2V0KGRwLCAtMSwgc2l6ZW9mIGRwKTsKCiAgICBEUCgxLCAwLCAwKTsKICAgIGNvdXQgPDwgZ2V0UmFuayhzdCkgPDwgJ1xuJzsKICAgIGNvdXQgPDwgZ2V0S3RoKGt0aCkgPDwgJ1xuJzsKfTs=