1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #define m 1000000007 6 using namespace std; 7 typedef long long ll; 8 const int MAXN=1000000+5; 9 ll n; 10 char str[MAXN]; 11 12 void init() 13 { 14 n=0; 15 int len=strlen(str); 16 for (int i=0;i<len;i++) 17 n=(n*10+str[i]-'0')%(m-1); 18 n--; 19 } 20 21 ll pow() 22 { 23 ll temp=n,k=2,ret=1; 24 while (temp) 25 { 26 if (temp&1) ret=ret*k%m; 27 temp>>=1; 28 k=(k*k)%m; 29 } 30 return ret; 31 } 32 33 int main() 34 { 35 while (~scanf("%s",str)) 36 { 37 init(); 38 cout<<pow()<<endl; 39 } 40 return 0; 41 }