Reading comprehension

Accepts: 134
Submissions: 749
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 32768/32768 K (Java/Others)
Problem Description
Read the program below carefully then answer the question. #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include const int MAX=100000*2; const int INF=1e9; int main() { int n,m,ans,i; while(scanf("%d%d",&n,&m)!=EOF) { ans=0; for(i=1;i<=n;i++) { if(i&1)ans=(ans*2+1)%m; else ans=ans*2%m; } printf("%d\n",ans); } return 0; }
Input
Multi test cases£¬each line will contain two integers n and m. Process to end of file. [b][Technical Specification][/b] 1<=n, m <= 1000000000
Output
For each case£¬output an integer£¬represents the output of above program.
Sample Input
1 10
3 100
Sample Output
1
5