#include <iostream>
using namespace std;
#include <vector>
#include <algorithm>
#include <map>
#include <queue>
#include <stack>
#include <set>
#include <unordered_set>
#include <unordered_map>
#include <atcoder/all>
#include <cmath>
#include <string>
#include <bitset>
using namespace atcoder;
using mint = modint998244353;
// using mint = modint;
// using mint = modint1000000007;
// combination
// https://github.com/atcoder/live_library/blob/cb2068b050b3fbeedd39321b3713ed6546fbeffa/comb.cpp#L31
using ll = long long;
using P = pair<int,int>;
#define rep(i,n) for(int i = 0; i < (n); ++i)
// int di[] = {1,1,1,0,0,-1,-1,-1};
// int dj[] = {1,0,-1,1,-1,1,0,-1};
// int di[] = {1,1,-1,-1};
// int dj[] = {1,-1,-1,-1};
int di[] = {0,1,0,-1};
int dj[] = {1,0,-1,0};
void chmin(int &x, int y){
x = min(x,y);
}
void chmax(ll &x, ll y){
x = max(x,y);
}
// int dist[2][505][505];
mint f(ll n) {
return (mint)n*(n+1)/2;
}
int main() {
int x, y;
cin >> x >> y;
rep(i,y) x *= 2;
cout << x << endl;
return 0;
}