// だーれだ? //qqqqqqHHMqqqqqHf!(:;jHmmkf``(:;jkqqqqqqqqqmMH#HMqqK_````````````````(kqqqqqqHMMM //qqqqqqHHmqqqqH=` :;;jkqH=?~..;;jqqqqqqqqqmM#HM#MHH!```` ```````..-``dqWbWkRqHMMM //qqqqqqMHmqqqK!``.;;;dqH: ```.?TUqqHmqqqqmHHHM4Mqkt..```` ..JgHHW@P`.HHkqHHHqM#NN //qqqqqmHMmqHTYWHgHmmgHR...``` :;Jkq9qqqqqgMH#1dHk$...-gW@HY"=!``dH! dHNmqqqqmM### //qqqqqqgMmH[````` ?dHMMMHHHHHJ<;JkK>XqqqmMH#<+Hb%.WYYTHppf-````.gt`.HHMmmqqqmM### //qqkqqqm@H?S,```` Jpbbpp:```` :!dK<;JkqqMMY(;dW^````.ppbpf!```.Y<`.HHHMgmqqqmH### //qqqqqqqqD`` ````(ppbppW````` ~.f`:;jkqM#^.;jf!````.Wppbpf````````(HH#HmmqqmH#NN# //qqqqqqqkP``````.fpbpbpf``` ` `.``~:;WHY``(+=``````Jppbpf\```` ``.MH#HHgqqqmHNNNN //qqqqqqqk]```` `,fpbbpf>```` `` ``_: #define int long long #define ll long long #define rep(i,a,b) for(signed i=a;i<(b);++i) #define erep(i,a,b) for(signed i=a;i<=(b);++i) #define per(i,a,b) for(signed i=(a);i>(b);--i) #define eper(i,a,b) for(signed i=(a);i>=b;--i) #define fore(i, x, a) for(auto &&x:a) #define ITR(i,b,e) for(auto i=(b);i!=(e);++i) #define pb push_back #define mp make_pair #define ALL(x) begin(x),end(x) #define F first #define S second #define debug(x) cout << #x << ": " << (x) << '\n'; const long long INF=1001001001001001001; const int MOD=(int)1e9 + 7; const double EPS=1e-9; using namespace std; using Pii = pair; using vii = vector; templateusing PS_queue = priority_queue, greater >; templateusing vv = vector; templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b void Fill(A (&array)[N], const T &val){fill( (T*)array, (T*)(array+N), val );} template ostream& operator<<(ostream &os,const vector &v) { ITR(i,begin(v),end(v))os<<*i<<(i==end(v)-1?"":" ");return os;} template istream& operator>>(istream &is,vector &v) { ITR(i,begin(v),end(v)) is>>*i;return is;} template istream& operator>>(istream &is, pair &p) { is>>p.first>>p.second;return is;} templateT gcd(T a, T b){ return b ? gcd(b, a % b) : a; } templateT lcm(T a, T b){ return a / gcd(a, b) * b; } struct edge { int from, to, cost; }; int dy[]={0, 1, -1, 0}; int dx[]={1, 0, 0, -1}; // cout << fixed; // cout << setprecision(10) << val; int n, m; signed main() { cin.tie(0); ios::sync_with_stdio(false); cin >> n >> m; int ans = 1LL; rep(i, 0, n) ans *= m; cout << ans << endl; return 0; }