#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod=1e9+7;
int qpow(int y){
int ans=1;
for(register int i=1;i<=y;i++){
ans=ans*2%mod;
}
return ans;
}
int qpow2(int x,int y){
for(register int i=1;i<=y;i++){
x=x*2%mod;
}
return x;
}
int x,k;
signed main(){
cin>>x>>k;
cout<<(qpow(k)*x%mod)<<" "<<qpow2(x,k)<<'\n';
return 0;
}
当 x,k 足够大时,第一个函数会爆负数 ,不太明白其中的原因