import Data.List

main = do
  li <- getLine
  let [n,m] = map read $ words li
  li <- getLine
  let as = map read $ words li
  let ans = compute n m as
  print ans

{-
aは偶数なので2で割ってそれらのlcmを求めて、
その定数倍であって、全てのaiに対して kl/ai が奇数であるようなものを数えたい

もしl/aiが偶数だったら、kをいくつにしてもkl/aiは偶数
そんなときの答えは0個、そうでないときはつまり奇数なので、
m/lまでのkで奇数の個数だから、m/l+1/2 かな？

-}
compute :: Int -> Int -> [Int] -> Int
compute n m as
  | any (even . div l) bs = 0
  | True = (m `div` l + 1) `div` 2
  where
    bs = map (flip div 2) as
    l = foldl' lcm 1 bs
