N,K=map(int,input().split()) ans=0 A=list(map(int,input().split())) #bitdp (2**N N) dp=[[0 for j in range(N)] for i in range(2**N)] #dp["0010101101"] := ex).A_2,,,,,,A_8を並び替えたときの考えうる最もいい最大値 dp[0]=[K for i in range(N)] for i in range(1,2**N): x=format(i,"0%ib"%N)[::-1] for j in range(N): if x[j]=="1": for k in range(N): dp[i][j]=max(dp[i][j],dp[i-2**j][k]%A[j]) ans=max(dp[-1]) print(ans)