#include <bits/stdc++.h>
using namespace std;
long long a, b;
long long maxn = 1000000000;
bool k = 0;
long long pow(long long x, long long y) {
if (y == 1)
return x;
if (y == 0)
return 1;
if (y % 2 == 0) {
long long p = pow(x, y / 2);
if (k == 1)
return 0;
if (p * p > maxn) {
k = 1;
return 0;
}
return p * p;
}
if (y % 2 == 1) {
long long p = pow(x, y - 1);
if (k == 1)
return 0;
if (p * x > maxn) {
k = 1;
return 0;
}
return p * x;
}
return 0;
}
int main() {
freopen("csp2022pj_pow.in", "r", stdin);
freopen("csp2022pj_pow.out", "w", stdout);
cin >> a >> b;
if (a > maxn) {
cout << -1 << endl;
return 0;
}
long long ans = pow(a, b);
if (k == 1) {
cout << -1 << endl;
return 0;
} else {
cout << ans << endl;
}
return 0;
}