fork download
  1. MOD=1000000007
  2. def power(no,p):
  3. if(p==0):
  4. return 1
  5. if(p==1):
  6. return no
  7. if(p&1==1):
  8. ans=power(no,p/2)
  9. return (((ans*ans)%MOD)*no)%MOD
  10. ans=power(no,p/2)
  11. return (ans*ans)%MOD
  12. t=(int)(raw_input())
  13. q=[0 for i in range(110)]
  14. p=[0 for i in range(110)]
  15. arr=[0 for i in range(110)]
  16. while(t>0):
  17. v,n=map(int,raw_input().split())
  18. p[0],p[1],a0,b0,c0,m0=map(int,raw_input().split())
  19. q[0],q[1],a1,b1,c1,m1=map(int,raw_input().split())
  20. arr[0]=p[0]*m1+q[0]
  21. arr[1]=p[1]*m1+q[1]
  22. for i in range(2,n):
  23. p[i]=(a0*a0*p[i-1]+b0*p[i-2]+c0)%m0
  24. q[i]=(a1*a1*q[i-1]+b1*q[i-2]+c1)%m1
  25. arr[i]=(p[i]*m1+q[i])
  26. temp=1
  27. for i in range(0,n):
  28. temp*=arr[i]
  29. temp%=(MOD-1)
  30. if(temp==0):
  31. break;
  32. if(v%MOD==0)and(temp!=0):
  33. print(0)
  34. elif(temp==0):
  35. print(1)
  36. else:
  37. print (power(v,temp))
  38. t-=1
Success #stdin #stdout 0.08s 8888KB
stdin
3
1 2
1 1 1 1 1 1
1 1 1 1 1 1
3 2
1 1 1 1 1 2
2 1 1 1 1 1
3 3
1 1 1 1 1 2
1 1 0 0 0 2
stdout
1
729
387420489