# 可能性があるのはAの最小値未満の整数値 # 解決め打ち二分探索はダメだ # Nは小さいのでビット全探索など使えるか? # Kがaの倍数なら0, gcd!=1ならどうなる # Aの最小値未満の整数値で一番大きい数字になるmodで最初に割る、それがキープされる N, K = map(int, input().split()) A = list(map(int, input().split())) A_min = min(A) mx = 0 for i in range(N): calc = K%A[i] if calc < A_min: mx = max(mx, calc) print(mx)