#include <bits/stdc++.h>
using namespace std;
int param[51][51], n, targ;
vector<int> visted(51);
stack<int> s;
bool dfs(int root) {
  if (root == targ) {
    return true;
  }
  if (visted[root] == 0) s.push(root);
  visted[root] = 1;
  int nxt = -1;
  for (int i = 1; i <= n; i++) {
    if (param[root][i] == 1 && visted[i] == 0) {
      nxt = i;
    }
  }
  if (nxt == -1 && s.size() > 1) {
    s.pop();
    nxt = s.top();
  }
  if (nxt != -1)
    dfs(nxt);
  else
    return false;
}
int GetNumberOfDigits(int i) { return i > 0 ? (int)log2(i) + 1 : 1; }
int main() {
  int n, m, d, mx = 0, ret = 0;
  vector<int> v;
  cin >> n >> m;
  for (int i = int(0); i < int(n); i++) {
    cin >> d;
    v.push_back(d);
  }
  int tm;
  mx = m;
  for (int i = int(0); i < int(n); i++) {
    tm = m;
    if (v[i] <= tm) {
      ret = tm / v[i];
      tm -= (ret * v[i]);
    } else {
      continue;
    }
    for (int j = int(i + 1); j < int(n); j++) {
      int x = v[j] * ret + tm;
      if (mx < x) mx = x;
    }
  }
  cout << mx;
  return 0;
}
