def solve(): N=int(input()) M=int(input()) B=[0]*M; C=[0]*M for i in range(M): B[i],C[i]=map(int,input().split()) C[i]%=B[i] B_max=max(B) A=[-1]*(B_max+1) K=0 for i in range(M): if A[B[i]]>=0 and A[B[i]]!=C[i]: return "NaN" if A[B[i]]==-1: A[B[i]]=C[i] K+=1 X=[0]*(N+1) for b in range(1,B_max+1): if A[b]==-1: continue for k in range(A[b],N+1,b): X[k]+=1 for n in range(N+1): if X[n]==K: return n else: return "NaN" #================================================== print(solve())