#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
struct BigInt {
static const int BASE = 1e9;
static const int B = 9;
vector<int> a;
BigInt() {}
BigInt(ll x) {
for (; x > 0; x /= BASE) {
a.push_back(x % BASE);
}
}
BigInt(const string &s) {
for (int i = (int)s.size() - 1; i >= 0; i -= B) {
int beg = max(0, i - B + 1);
int len = i - beg + 1;
int block = stoi(s.substr(beg, len));
a.push_back(block);
}
trim();
}
void trim() {
while (!a.empty() && a.back() == 0) {
a.pop_back();
}
}
bool isZero() {
return (a.empty());
}
BigInt operator*=(const BigInt &other) {
int n = a.size(), m = other.a.size();
vector<int> c(n + m, 0);
for (int i = 0; i < n; i++) {
int carry = 0;
for (int j = 0; j < m || carry; j++) {
ll cur = c[i + j] + 1ll * a[i] * (j < m ? other.a[j] : 0) + carry;
c[i + j] = cur % BASE;
carry = cur / BASE;
}
}
swap(a, c);
trim();
return *this;
}
BigInt operator*(const BigInt &other) const {
return BigInt(*this) *= other;
}
friend istream& operator>>(istream &in, BigInt &num) {
string s;
in >> s;
num = BigInt(s);
return in;
}
friend ostream& operator<<(ostream &out, const BigInt &num) {
if (num.a.empty()) {
return out << 0;
}
string s = to_string(num.a.back());
for (int i = (int)num.a.size() - 2; i >= 0; i--) {
string block = to_string(num.a[i]);
while (block.size() < 9) block = '0' + block;
s += block;
}
for (int i = 0; i < s.size(); i++) {
out << s[i];
if ((i + 1) % 70 == 0) out << '\n';
}
return out;
}
};
BigInt binpow(BigInt a, int b) {
BigInt ans = 1;
for (; b > 0; b >>= 1) {
if (b & 1) ans = ans * a;
a = a * a;
}
return ans;
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
BigInt n;
int p;
cin >> n >> p;
cout << binpow(n, p);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsgIAoKdHlwZWRlZiBsb25nIGxvbmcgbGw7ICAKdHlwZWRlZiBwYWlyPGludCwgaW50PiBpaTsgIAoKY29uc3QgaW50IElORiA9IDFlOTsgIApjb25zdCBsbCBMSU5GID0gMWUxODsgIAoKc3RydWN0IEJpZ0ludCB7CQoJc3RhdGljIGNvbnN0IGludCBCQVNFID0gMWU5OyAKCXN0YXRpYyBjb25zdCBpbnQgQiA9IDk7IAoKCXZlY3RvcjxpbnQ+IGE7IAoKCUJpZ0ludCgpIHt9CgoJQmlnSW50KGxsIHgpIHsKCQlmb3IgKDsgeCA+IDA7IHggLz0gQkFTRSkgewoJCQlhLnB1c2hfYmFjayh4ICUgQkFTRSk7IAoJCX0KCX0KCglCaWdJbnQoY29uc3Qgc3RyaW5nICZzKSB7CgkJZm9yIChpbnQgaSA9IChpbnQpcy5zaXplKCkgLSAxOyBpID49IDA7IGkgLT0gQikgewoJCQlpbnQgYmVnID0gbWF4KDAsIGkgLSBCICsgMSk7IAoJCQlpbnQgbGVuID0gaSAtIGJlZyArIDE7ICAKCQkJaW50IGJsb2NrID0gc3RvaShzLnN1YnN0cihiZWcsIGxlbikpOyAKCQkJYS5wdXNoX2JhY2soYmxvY2spOyAKCQl9CQoJCXRyaW0oKTsKCX0KCgl2b2lkIHRyaW0oKSB7CgkJd2hpbGUgKCFhLmVtcHR5KCkgJiYgYS5iYWNrKCkgPT0gMCkgewoJCQlhLnBvcF9iYWNrKCk7IAoJCX0KCX0KCglib29sIGlzWmVybygpIHsKCQlyZXR1cm4gKGEuZW1wdHkoKSk7IAoJfQoKCUJpZ0ludCBvcGVyYXRvcio9KGNvbnN0IEJpZ0ludCAmb3RoZXIpIHsKCQlpbnQgbiA9IGEuc2l6ZSgpLCBtID0gb3RoZXIuYS5zaXplKCk7CgkJdmVjdG9yPGludD4gYyhuICsgbSwgMCk7ICAKCQlmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewoJCQlpbnQgY2FycnkgPSAwOyAgCgkJCWZvciAoaW50IGogPSAwOyBqIDwgbSB8fCBjYXJyeTsgaisrKSB7CgkJCQlsbCBjdXIgPSBjW2kgKyBqXSArIDFsbCAqIGFbaV0gKiAoaiA8IG0gPyBvdGhlci5hW2pdIDogMCkgKyBjYXJyeTsgICAKCQkJCWNbaSArIGpdID0gY3VyICUgQkFTRTsgCgkJCQljYXJyeSA9IGN1ciAvIEJBU0U7IAoJCQl9CgkJfQoJCXN3YXAoYSwgYyk7IAoJCXRyaW0oKTsKCQlyZXR1cm4gKnRoaXM7IAoJfQoKCUJpZ0ludCBvcGVyYXRvciooY29uc3QgQmlnSW50ICZvdGhlcikgY29uc3QgewoJCXJldHVybiBCaWdJbnQoKnRoaXMpICo9IG90aGVyOyAKCX0KCglmcmllbmQgaXN0cmVhbSYgb3BlcmF0b3I+Pihpc3RyZWFtICZpbiwgQmlnSW50ICZudW0pIHsKCQlzdHJpbmcgczsKCQlpbiA+PiBzOyAJCgkJbnVtID0gQmlnSW50KHMpOyAgCgkJcmV0dXJuIGluOyAKCX0KCglmcmllbmQgb3N0cmVhbSYgb3BlcmF0b3I8PChvc3RyZWFtICZvdXQsIGNvbnN0IEJpZ0ludCAmbnVtKSB7CgkJaWYgKG51bS5hLmVtcHR5KCkpIHsKCQkJcmV0dXJuIG91dCA8PCAwOyAgCgkJfQoJCXN0cmluZyBzID0gdG9fc3RyaW5nKG51bS5hLmJhY2soKSk7IAoJCWZvciAoaW50IGkgPSAoaW50KW51bS5hLnNpemUoKSAtIDI7IGkgPj0gMDsgaS0tKSB7CgkJCXN0cmluZyBibG9jayA9IHRvX3N0cmluZyhudW0uYVtpXSk7IAoJCQl3aGlsZSAoYmxvY2suc2l6ZSgpIDwgOSkgYmxvY2sgPSAnMCcgKyBibG9jazsgCgkJCXMgKz0gYmxvY2s7IAoJCX0KCQlmb3IgKGludCBpID0gMDsgaSA8IHMuc2l6ZSgpOyBpKyspIHsKCQkJb3V0IDw8IHNbaV07IAoJCQlpZiAoKGkgKyAxKSAlIDcwID09IDApIG91dCA8PCAnXG4nOyAKCQl9CgkJcmV0dXJuIG91dDsgCgl9Cn07IAoKQmlnSW50IGJpbnBvdyhCaWdJbnQgYSwgaW50IGIpIHsKCUJpZ0ludCBhbnMgPSAxOyAgCglmb3IgKDsgYiA+IDA7IGIgPj49IDEpIHsKCQlpZiAoYiAmIDEpIGFucyA9IGFucyAqIGE7ICAKCQlhID0gYSAqIGE7ICAKCX0KCXJldHVybiBhbnM7IAp9CgppbnQgbWFpbigpIHsKCWlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgCgljaW4udGllKG51bGxwdHIpOyAKCUJpZ0ludCBuOyAgCglpbnQgcDsgIAoJY2luID4+IG4gPj4gcDsgICAKCWNvdXQgPDwgYmlucG93KG4sIHApOyAKfQo=