#pragma GCC optimize(3)
#include<iostream>
#include<math.h>
#include<iomanip>
#include<cstring>
#include<string>
#include<algorithm>
#include<stdlib.h>
#include<stdio.h>
#include<limits.h>
#include<sstream>
#include<vector>
#define N 114514
#define eps_0 1e-6
#define eps_1 1e-7
typedef long long ll;
typedef long double db;
#define sst stringstream
using namespace std;
ll n,m;
int main(void){
cin>>n>>m;
if((ll)pow(n,m)<=(ll)pow(10,9)&&(ll)pow(n,m)-pow(n,m)==0){
cout<<(ll)pow(n,m);
}else{
cout<<-1;
}
return 0;
}
/**************************************************************
Problem: 2405
User: admin
Language: C++
Result: Accepted
Time:49 ms
Memory:2324 kb
****************************************************************/