n = int(input())
a = list(map(int,input().split()))
b=a
t = int(input())
primelist = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
pfreq=[[0 for i in range(25) ]for j in range(n)]
def modular_pow(base, exponent, modulus): # algorithm understood and applied from wikipedia
result = 1
while exponent > 0:
if (exponent % 2 == 1):
result=(result*base)%modulus
exponent = exponent>>1
base = (base * base)%modulus
return result
while t>0:
t-=1
c = list(map(int,input().split()))
for i in range(0,n):
for prime in primelist:
if a[i]%prime==0:
while a[i]>0:
ind = primelist.index(prime)
pfreq[i][ind]+=1
a[i] = a[i]//prime
if a[i]%prime==0:
continue
else:
a[i]=b[i]
break
rem=1
for i in range(0,25):
exp=0
for j in range(c[0]-1,c[1]):
exp+=pfreq[j][i]
#rem = (rem*pow(primelist[i],exp,c[2]))%c[2]
rem*=modular_pow(primelist[i],exp,c[2])
rem = rem%c[2]
print(rem)
biA9IGludChpbnB1dCgpKQphID0gbGlzdChtYXAoaW50LGlucHV0KCkuc3BsaXQoKSkpCmI9YQp0ID0gaW50KGlucHV0KCkpCnByaW1lbGlzdCA9IFsyLCAzLCA1LCA3LCAxMSwgMTMsIDE3LCAxOSwgMjMsIDI5LCAzMSwgMzcsIDQxLCA0MywgNDcsIDUzLCA1OSwgNjEsIDY3LCA3MSwgNzMsIDc5LCA4MywgODksIDk3XQpwZnJlcT1bWzAgZm9yIGkgaW4gcmFuZ2UoMjUpIF1mb3IgaiBpbiByYW5nZShuKV0KZGVmIG1vZHVsYXJfcG93KGJhc2UsIGV4cG9uZW50LCBtb2R1bHVzKTogIyBhbGdvcml0aG0gdW5kZXJzdG9vZCBhbmQgYXBwbGllZCBmcm9tICB3aWtpcGVkaWEKICAgIHJlc3VsdCA9IDEKICAgIHdoaWxlIGV4cG9uZW50ID4gMDoKICAgICAgICAgICAgaWYgKGV4cG9uZW50ICUgMiA9PSAxKToKICAgICAgICAgICAgICAgIHJlc3VsdD0ocmVzdWx0KmJhc2UpJW1vZHVsdXMKICAgICAgICAgICAgZXhwb25lbnQgPSBleHBvbmVudD4+MQogICAgICAgICAgICBiYXNlID0gKGJhc2UgKiBiYXNlKSVtb2R1bHVzCiAgICByZXR1cm4gcmVzdWx0CiAgICAgICAgICAgICAKd2hpbGUgdD4wOgogICAgdC09MQogICAgYyA9IGxpc3QobWFwKGludCxpbnB1dCgpLnNwbGl0KCkpKQogICAgZm9yIGkgaW4gcmFuZ2UoMCxuKToKICAgICAgICBmb3IgcHJpbWUgaW4gcHJpbWVsaXN0OgogICAgICAgICAgICBpZiBhW2ldJXByaW1lPT0wOgogICAgICAgICAgICAgICAgd2hpbGUgYVtpXT4wOgogICAgICAgICAgICAgICAgICAgIGluZCA9IHByaW1lbGlzdC5pbmRleChwcmltZSkKICAgICAgICAgICAgICAgICAgICBwZnJlcVtpXVtpbmRdKz0xCiAgICAgICAgICAgICAgICAgICAgYVtpXSA9IGFbaV0vL3ByaW1lCiAgICAgICAgICAgICAgICAgICAgaWYgYVtpXSVwcmltZT09MDoKICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICAgICBhW2ldPWJbaV0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgIHJlbT0xCiAgICBmb3IgaSBpbiByYW5nZSgwLDI1KToKICAgICAgICBleHA9MAogICAgICAgIGZvciBqIGluIHJhbmdlKGNbMF0tMSxjWzFdKToKICAgICAgICAgICAgZXhwKz1wZnJlcVtqXVtpXQogICAgICAgICNyZW0gPSAocmVtKnBvdyhwcmltZWxpc3RbaV0sZXhwLGNbMl0pKSVjWzJdCiAgICAgICAgcmVtKj1tb2R1bGFyX3BvdyhwcmltZWxpc3RbaV0sZXhwLGNbMl0pCiAgICByZW0gPSByZW0lY1syXQogICAgcHJpbnQocmVtKQo=