Input
2
Output
2
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<cstdio>
#include<vector>
#include<set>
#include<cstring>
#include<cstdlib>
#include<time.h>
#include<stack>
#define INF 0x3f3f3f3f
using namespace std;
#define maxn 1e9+7
typedef long long ll;
ll mod=1e9+7;
ll mode(ll a,ll b){
ll sum=1;
while(b){
if(b&1)
sum=(sum*a)%mod;
b/=2;
a=(a*a)%mod;
}
return sum;
}
ll inv(ll a,ll b){
return(a*mode(b,mod-2))%mod;
}
int main()
{
ll n;
char s[100010];
while(scanf("%s",s)!=EOF){
int len=strlen(s);
ll res=0;
for(int i=0;i<len;i++){
res=(res*10+s[i]-'0')%(mod-1);
}
res=(res-1+mod-1)%(mod-1);
printf("%lld\n",mode(2,res));
}
return 0;
}