#include<bits/stdc++.h>
using namespace std;
int n,m,a[100010];
int gcd(int x,int y)
{
	return((y==0)?x:gcd(y,x%y));
}
int twos(int&x)
{
	int ret=0;
	while(!(x&1))
	{
		x>>=1;
		ret++;
	}
	return ret;
}
int main()
{
	scanf("%d%d%d",&n,&m,&a[1]);
	a[0]=twos(a[1]);
	for(int i=2;i<=n;i++)
	{
		scanf("%d",&a[i]);
		if(twos(a[i])!=a[0])
		{
			printf("0\n");
			return 0;
		}
	}
	for(int i=2;i<=n;i++)
	{
		if((long long)(a[1]/gcd(a[1],a[i])*a[i])>m)
		{
			printf("0\n");
			return 0;
		}
		else
			a[1]=a[1]/gcd(a[1],a[i])*a[i];
	}
	printf("%d\n",((m/a[1])>>a[0]-1)+1>>1);
	return 0;
}