#include <bits/stdc++.h>
using namespace std;
long long int n, k;
long long int a[100001];
long long int maxbase = 0;
set<long long int> ans;
int gcd(int n1, int n2) {
  if (n1 < n2) swap(n1, n2);
  if (n2 == 0) return n1;
  return gcd(n2, n1 % n2);
}
int main() {
  cin >> n >> k;
  long long int gcdv;
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
  gcdv = a[0];
  for (int i = 1; i < n; i++) {
    gcdv = gcd(gcdv, a[i]);
  }
  for (int i = 1; i <= 100000; i++) {
    ans.insert((gcdv * i) % k);
  }
  cout << ans.size() << '\n';
  for (set<long long int>::iterator it = ans.begin(); it != ans.end(); it++) {
    cout << *it << ' ';
  }
  cout << '\n';
}
