#include <bits/stdc++.h>
using namespace std;
using ll = long long;
// Binary Exponentiation'ın kısaltması.
ll bin_exp(ll taban, ll us) {
ll cevap = 1;
// Üs 1'den büyükken...
while (us) { // Veya us > 0 / us != 0 vs.
// Üssün sonuncu biti 1 mi?
if (us % 2) { // Veya us & 1
cevap *= taban;
}
// 1 değilse `cevap`ı güncellemeyeceğiz
// ama her türlü `taban`ı kendisiyle çarpacağız.
taban *= taban;
us /= 2; // Üssü de bölmeyi unutmayalım.
// Veya us >>= 1
}
return cevap;
}
int main() {
ll taban, us;
cin >> taban >> us;
cout << taban << "^" << us << " = " << bin_exp(taban, us) << "\n";
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nOwoKLy8gQmluYXJ5IEV4cG9uZW50aWF0aW9uJ8SxbiBrxLFzYWx0bWFzxLEuCmxsIGJpbl9leHAobGwgdGFiYW4sIGxsIHVzKSB7CiAgICBsbCBjZXZhcCA9IDE7CgogICAgLy8gw5xzIDEnZGVuIGLDvHnDvGtrZW4uLi4KICAgIHdoaWxlICh1cykgeyAvLyBWZXlhIHVzID4gMCAvIHVzICE9IDAgdnMuCiAgICAgICAgLy8gw5xzc8O8biBzb251bmN1IGJpdGkgMSBtaT8KICAgICAgICBpZiAodXMgJSAyKSB7IC8vIFZleWEgdXMgJiAxCiAgICAgICAgICAgIGNldmFwICo9IHRhYmFuOwogICAgICAgIH0KICAgICAgICAvLyAxIGRlxJ9pbHNlIGBjZXZhcGDEsSBnw7xuY2VsbGVtZXllY2XEn2l6CiAgICAgICAgLy8gYW1hIGhlciB0w7xybMO8IGB0YWJhbmDEsSBrZW5kaXNpeWxlIMOnYXJwYWNhxJ/EsXouCiAgICAgICAgdGFiYW4gKj0gdGFiYW47CgogICAgICAgIHVzIC89IDI7IC8vIMOcc3PDvCBkZSBiw7ZsbWV5aSB1bnV0bWF5YWzEsW0uCiAgICAgICAgLy8gVmV5YSB1cyA+Pj0gMQogICAgfQoKICAgIHJldHVybiBjZXZhcDsKfQoKaW50IG1haW4oKSB7CiAgICBsbCB0YWJhbiwgdXM7CiAgICBjaW4gPj4gdGFiYW4gPj4gdXM7CiAgICBjb3V0IDw8IHRhYmFuIDw8ICJeIiA8PCB1cyA8PCAiID0gIiA8PCBiaW5fZXhwKHRhYmFuLCB1cykgPDwgIlxuIjsKfQ==