#include <bits/stdc++.h>
using namespace std;
long long int a[1000000];
long long int dp[3000000];
int main() {
  long long int i, j, n, k;
  cin >> n >> k;
  long long int t = 100000000000;
  for (i = 1; i <= n; i++) {
    cin >> a[i - 1];
    t = min(t, a[i - 1]);
  }
  for (i = 1; i <= n; i++) dp[a[i - 1]]++;
  for (i = 1; i <= 2000002; i++) dp[i] = dp[i - 1] + dp[i];
  long long int x, y, p, sum;
  for (i = t; i >= 1; i--) {
    sum = 0;
    for (j = 1;; j++) {
      p = j * i;
      if (p > 1000000) break;
      x = (j + 1) * i - 1;
      y = p + k;
      x = min(x, y);
      sum += dp[x] - dp[p - 1];
    }
    if (sum == n) {
      cout << i;
      exit(0);
    }
  }
}
