#include <iostream>
#include <vector>
using namespace std;
using int64 = long long;
int64 fast_pow(int64 base, int64 esp, int64 modd) {
if (esp == 0) return 1;
if (esp == 1) return base % modd;
int64 meta = fast_pow(base, esp / 2, modd);
if (esp % 2 == 0) return (meta * meta) % modd;
else return (meta * meta % modd * base) % modd;
}
void decifra(int64 N, int64 d, int64 L, const vector<int64>& messaggio, vector<char>& plaintext) {
plaintext.resize(L + 1);
plaintext[L] = char(0);
for (int64 i = 0; i < L; i++) {
plaintext[i] = char(fast_pow(messaggio[i], d, N));
cout << plaintext[i];
}
}
int main() {
int64 N, d, L;
cin >> N >> d >> L;
vector<int64> messaggio(L);
for (int64 i = 0; i < L; i++) {
cin >> messaggio[i];
}
vector<char> plaintext;
decifra(N, d, L, messaggio, plaintext);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnVzaW5nIGludDY0ID0gbG9uZyBsb25nOwoKaW50NjQgZmFzdF9wb3coaW50NjQgYmFzZSwgaW50NjQgZXNwLCBpbnQ2NCBtb2RkKSB7CiAgICBpZiAoZXNwID09IDApIHJldHVybiAxOwogICAgaWYgKGVzcCA9PSAxKSByZXR1cm4gYmFzZSAlIG1vZGQ7CiAgICBpbnQ2NCBtZXRhID0gZmFzdF9wb3coYmFzZSwgZXNwIC8gMiwgbW9kZCk7CiAgICBpZiAoZXNwICUgMiA9PSAwKSByZXR1cm4gKG1ldGEgKiBtZXRhKSAlIG1vZGQ7CiAgICBlbHNlIHJldHVybiAobWV0YSAqIG1ldGEgJSBtb2RkICogYmFzZSkgJSBtb2RkOwp9Cgp2b2lkIGRlY2lmcmEoaW50NjQgTiwgaW50NjQgZCwgaW50NjQgTCwgY29uc3QgdmVjdG9yPGludDY0PiYgbWVzc2FnZ2lvLCB2ZWN0b3I8Y2hhcj4mIHBsYWludGV4dCkgewogICAgcGxhaW50ZXh0LnJlc2l6ZShMICsgMSk7CiAgICBwbGFpbnRleHRbTF0gPSBjaGFyKDApOwogICAgZm9yIChpbnQ2NCBpID0gMDsgaSA8IEw7IGkrKykgewogICAgICAgIHBsYWludGV4dFtpXSA9IGNoYXIoZmFzdF9wb3cobWVzc2FnZ2lvW2ldLCBkLCBOKSk7CiAgICAgICAgY291dCA8PCBwbGFpbnRleHRbaV07CiAgICB9Cn0KCmludCBtYWluKCkgewogICAgaW50NjQgTiwgZCwgTDsKICAgIGNpbiA+PiBOID4+IGQgPj4gTDsKICAgIHZlY3RvcjxpbnQ2ND4gbWVzc2FnZ2lvKEwpOwogICAgZm9yIChpbnQ2NCBpID0gMDsgaSA8IEw7IGkrKykgewogICAgICAgIGNpbiA+PiBtZXNzYWdnaW9baV07CiAgICB9CiAgICB2ZWN0b3I8Y2hhcj4gcGxhaW50ZXh0OwogICAgZGVjaWZyYShOLCBkLCBMLCBtZXNzYWdnaW8sIHBsYWludGV4dCk7CiAgICByZXR1cm4gMDsKfQ==