#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
****************************************************************/