func_code_string: #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;   }   