Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Author: bin
- Created:2019/10/17 21:50:01
- */
- #pragma GCC optimize(2)
- #include <bits/stdc++.h>
- #define endl '\n'
- #define INF 0x3f3f3f3f
- #define debug(x) cout<< #x " = "<<(x)<<endl;
- #define pc(x) putchar(x)
- using namespace std;
- typedef long long ll;
- template<typename T> void read(T &x){
- x = 0; int f = 1; char ch = getchar();
- while(!isdigit(ch) ) ch = getchar();
- while( isdigit(ch) ) {x = x * 10 + ch - 48; ch = getchar();}
- x *= f;
- }
- template<typename T, typename... Args> void read(T& x, Args&... args)
- { read(x), read(args...); }
- template<typename T> void write(T x) {
- if(x < 0) putchar('-'), write(-x);
- if(x > 9) write(x / 10);
- putchar(x % 10 + '0');
- }
- template<typename T, typename... Args> void write(T& x, Args&... args)
- { write(x),putchar(' '), write(args...),putchar('\n'); }
- #define int ll
- const ll MOD=1e9+7;
- ll fpow(ll x,ll y)
- {
- ll ans = 1;
- while(y)
- {
- if(y & 1) ans = ans*x%MOD;
- x = x * x %MOD;
- y >>= 1;
- }
- return ans;
- }
- signed main()
- {
- ll n,m,ans=0;
- read(n,m);
- ans=fpow(2,m)-1;
- ans=fpow(ans,n);
- ans%=MOD;
- if(m!=1)
- write(ans);
- else
- write(n);
- pc(endl);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement