L=10**5 f=[[] for i in range(L+1)] for i in range(1,L+1): for j in range(i,L+1,i): f[j]+=[i] n,K=map(int,input().split()) a=list(map(int,input().split())) b=list(map(int,input().split())) ok=0 ng=min(a)+1 while ng-ok>1: m=(ok+ng)//2 k=0 for i in range(n): k+=min((-b[i])%v for v in f[a[i]] if v>=m) if k<=K: ok=m else: ng=m print(ok)