local mmi, mma = math.min, math.max local bls, brs = bit.lshift, bit.rshift local n, k = io.read("*n", "*n") local a = {} for i = 1, n do a[i] = io.read("*n") end table.sort(a, function(x, y) return x > y end) local ret = 0 local tot = bls(1, n - 1) for i = 0, tot - 1 do local ti = i local z = k for j = 1, n - 1 do if ti % 2 == 1 then z = z % a[j] end ti = brs(ti, 1) end ret = mma(ret, z % a[n]) end print(ret)