def sieve(N):
n = int(N**0.5)
P = [True]*((N-3)//2+1)
for i in range(3,n+1,2):
if P[(i-3)//2]:
for j in range((i**2-3)//2,(N-3)//2+1,i):
P[j]=False
return [2]+[2*i+3 for i in range(len(P)) if P[i]]
ZGVmIHNpZXZlKE4pOgogICAgbiA9IGludChOKiowLjUpCiAgICBQID0gW1RydWVdKigoTi0zKS8vMisxKQogICAgZm9yIGkgaW4gcmFuZ2UoMyxuKzEsMik6CiAgICAgICAgaWYgUFsoaS0zKS8vMl06CiAgICAgICAgICAgIGZvciBqIGluIHJhbmdlKChpKioyLTMpLy8yLChOLTMpLy8yKzEsaSk6CiAgICAgICAgICAgICAgICBQW2pdPUZhbHNlCiAgICByZXR1cm4gWzJdK1syKmkrMyBmb3IgaSBpbiByYW5nZShsZW4oUCkpIGlmIFBbaV1d