#include <iostream>
#include <map>
using namespace std;
int p[30];
map<int, bool> mp;
int main()
{
int n, m;
cin >> n >> m;
for (int i = 1; i <= n; i++)
{
cin >> p[i];
mp[p[i]] = true;
int cur = 2;
while (true)
{
if (p[i] * cur <= m) mp[p[i] * cur] = true;
else break;
cur++;
}
}
int sum = 0;
for (auto kv: mp)
{
if (kv.second == true) sum += kv.first;
}
cout << sum % 376544743 << endl;
return 0;
}