/*
高精度计算 n 的 m 次方
|-- 模拟乘法计算
*/
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n, m;
int result[1000]; // 这里假设结果最多为 1000 位,可适当调大或调小
int main() {
while(~scanf("%d%d", &n, &m)) {
memset(result, 0, sizeof(result));
result[999] = 1;
int bit = 0; // 进位的值
// 模拟乘法计算
for(int i=0; i<m; i++) {
for(int j=999; j>=0; j--) {
int k = result[j] * n + bit;
result[j] = k % 10;
bit = k / 10;
}
}
for(int i=0; i<1000; i++) {
if(result[i]) {
for(int j=i; j<1000; j++) {
printf("%d", result[j]);
}
puts("");
break;
}
}
}
return 0;
}