#include <iostream>
#include <string>
#include <cctype>
using namespace std;
enum action { ENCRYPT, DECRYPT };
string crypt(action type, int nrails, string data) {
int cyclesize = 2*(nrails-1);
string ret(data);
int pos = 0, i, a;
int& rpos = type ? i : pos, &dpos = type ? pos : i;
for (int rail = 0; rail < nrails; ++rail) {
for (i = rail, a = 2*rail; i < data.length(); a = cyclesize - a, i += a) {
if (a==cyclesize) continue;
ret[rpos] = data[dpos];
++pos;
}
}
return ret;
}
int main() {
string data;
action act;
int nrails;
cin >> data >> nrails;
if (data == "enc") act = ENCRYPT;
else if (data == "dec") act = DECRYPT;
else {
cout << "Unknown action.\n";
return 1;
}
while (isspace(cin.peek())) cin.ignore();
getline(cin, data);
cout << crypt(act, nrails, data);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8Y2N0eXBlPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKZW51bSBhY3Rpb24geyBFTkNSWVBULCBERUNSWVBUIH07CnN0cmluZyBjcnlwdChhY3Rpb24gdHlwZSwgaW50IG5yYWlscywgc3RyaW5nIGRhdGEpIHsKCWludCBjeWNsZXNpemUgPSAyKihucmFpbHMtMSk7CglzdHJpbmcgcmV0KGRhdGEpOwoJaW50IHBvcyA9IDAsIGksIGE7CglpbnQmIHJwb3MgPSB0eXBlID8gaSA6IHBvcywgJmRwb3MgPSB0eXBlID8gcG9zIDogaTsKCWZvciAoaW50IHJhaWwgPSAwOyByYWlsIDwgbnJhaWxzOyArK3JhaWwpIHsKCQlmb3IgKGkgPSByYWlsLCBhID0gMipyYWlsOyBpIDwgZGF0YS5sZW5ndGgoKTsgYSA9IGN5Y2xlc2l6ZSAtIGEsIGkgKz0gYSkgewoJCQlpZiAoYT09Y3ljbGVzaXplKSBjb250aW51ZTsKCQkJcmV0W3Jwb3NdID0gZGF0YVtkcG9zXTsKCQkJKytwb3M7CgkJfQoJfQoJcmV0dXJuIHJldDsKfQoKaW50IG1haW4oKSB7CglzdHJpbmcgZGF0YTsKCWFjdGlvbiBhY3Q7CglpbnQgbnJhaWxzOwoJY2luID4+IGRhdGEgPj4gbnJhaWxzOwoJaWYgKGRhdGEgPT0gImVuYyIpIGFjdCA9IEVOQ1JZUFQ7CgllbHNlIGlmIChkYXRhID09ICJkZWMiKSBhY3QgPSBERUNSWVBUOwoJZWxzZSB7CgkJY291dCA8PCAiVW5rbm93biBhY3Rpb24uXG4iOwoJCXJldHVybiAxOwoJfQoJCgl3aGlsZSAoaXNzcGFjZShjaW4ucGVlaygpKSkgY2luLmlnbm9yZSgpOwoJZ2V0bGluZShjaW4sIGRhdGEpOwoJCgljb3V0IDw8IGNyeXB0KGFjdCwgbnJhaWxzLCBkYXRhKTsKCXJldHVybiAwOwp9