#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+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nOwogCi8vIEJpbmFyeSBFeHBvbmVudGlhdGlvbifEsW4ga8Sxc2FsdG1hc8SxLgpsbCBiaW5fZXhwKGxsIHRhYmFuLCBsbCB1cykgewogICAgbGwgY2V2YXAgPSAxOwogCiAgICAvLyDDnHMgMSdkZW4gYsO8ecO8a2tlbi4uLgogICAgd2hpbGUgKHVzKSB7IC8vIFZleWEgdXMgPiAwIC8gdXMgIT0gMCB2cy4KICAgICAgICAvLyDDnHNzw7xuIHNvbnVuY3UgYml0aSAxIG1pPwogICAgICAgIGlmICh1cyAlIDIpIHsgLy8gVmV5YSB1cyAmIDEKICAgICAgICAgICAgY2V2YXAgKj0gdGFiYW47CiAgICAgICAgfQogICAgICAgIC8vIDEgZGXEn2lsc2UgYGNldmFwYMSxIGfDvG5jZWxsZW1leWVjZcSfaXoKICAgICAgICAvLyBhbWEgaGVyIHTDvHJsw7wgYHRhYmFuYMSxIGtlbmRpc2l5bGUgw6dhcnBhY2HEn8Sxei4KICAgICAgICB0YWJhbiAqPSB0YWJhbjsKIAogICAgICAgIHVzIC89IDI7IC8vIMOcc3PDvCBkZSBiw7ZsbWV5aSB1bnV0bWF5YWzEsW0uCiAgICAgICAgLy8gVmV5YSB1cyA+Pj0gMQogICAgfQogCiAgICByZXR1cm4gY2V2YXA7Cn0KIAppbnQgbWFpbigpIHsKICAgIGxsIHRhYmFuLCB1czsKICAgIGNpbiA+PiB0YWJhbiA+PiB1czsKICAgIGNvdXQgPDwgdGFiYW4gPDwgIl4iIDw8IHVzIDw8ICIgPSAiIDw8IGJpbl9leHAodGFiYW4sIHVzKSA8PCAiXG4iOwp9