# Ai < Ajのとき、K mod Ai mod AjはK mod Aiと同じ # しかし、K mod Aj mod AiはK mod Aiと同じとは限らない # つまりAを降順ソートして、mod Akするしないで候補をリストアウト # mod Akしないということは、Asmallestの後にmodしたということ # 最後のAsmallestはmod必要、これは逃れられない N, K = map(int, input().split()) A = list(map(int, input().split())) A.sort(reverse = True) mod_set = set() mod_set.add(K) for i in range(N): if i < N-1: temp_set = set() for k in mod_set: temp_set.add(k%A[i]) mod_set |= temp_set elif i == N-1: temp_set = set() for k in mod_set: temp_set.add(k%A[i]) ans = max(temp_set) print(ans)