#include <bits/stdc++.h>
using namespace std;
int gcd(int a, int b) {
  if (a < b) swap(a, b);
  if (b == 0) return a;
  return gcd(b, a % b);
}
int main() {
  int n, m;
  cin >> n >> m;
  int g;
  cin >> g;
  g--;
  for (int i = 1; i < n; ++i) {
    int a;
    cin >> a;
    a--;
    g = gcd(g, a);
  }
  vector<int> divs;
  for (int i = 1; i * i <= g; ++i) {
    if (g % i == 0) {
      if (i % 2 == 1) {
        divs.push_back(i);
      }
      if (i != g / i && (g / i) % 2 == 1) divs.push_back(g / i);
    }
  }
  long long ans = 0;
  for (int i = 0; i < divs.size(); ++i) {
    int k = divs[i];
    while (true) {
      if (k < m) {
        ans += m - k;
        k *= 2;
      } else {
        break;
      }
    }
  }
  cout << ans << '\n';
}
