func_code_string: #include <bits/stdc++.h>   using namespace std;   inline long long getint() {     long long _x = 0, _tmp = 1;     char _tc = getchar();     while ((_tc <  0  || _tc >  9 ) && _tc !=  - ) _tc = getchar();     if (_tc ==  - ) _tc = getchar(), _tmp = -1;     while (_tc >=  0  && _tc <=  9 ) _x *= 10, _x += (_tc -  0 ), _tc = getchar();     return _x * _tmp;   }   long long mypow(long long _a, long long _x, long long _mod) {     if (_x == 0) return 1ll;     long long _tmp = mypow(_a, _x / 2, _mod);     _tmp = (_tmp * _tmp) % _mod;     if (_x & 1) _tmp = (_tmp * _a) % _mod;     return _tmp;   }   inline long long add(long long _x, long long _y,                        long long _mod = 1000000007ll) {     long long _ = _x + _y;     if (_ >= _mod) _ -= _mod;     return _;   }   inline long long sub(long long _x, long long _y,                        long long _mod = 1000000007ll) {     long long _ = _x - _y;     if (_ < 0) _ += _mod;     return _;   }   inline long long mul(long long _x, long long _y,                        long long _mod = 1000000007ll) {     long long _ = _x * _y;     if (_ >= _mod) _ %= _mod;     return _;   }   inline bool equal(double _x, double _y) {     return _x > _y - 1e-9 && _x < _y + 1e-9;   }   int __ = 1, _cs;   int n, k;   vector<int> v;   void build() {}   void init() {     n = getint();     k = getint();     for (int i = 1; i <= n; i++) v.push_back(getint());     sort((v).begin(), (v).end());     v.resize(unique((v).begin(), (v).end()) - v.begin());   }   int dp[1001 * 1001];   void solve() {     for (int i = 1; i <= (v.back() - v[0]) * k; i++) {       dp[i] = 1001 * 1001;       for (size_t j = 1; j < v.size(); j++)         if (v[j] - v[0] > i)           break;         else           dp[i] = min(dp[i], dp[i - v[j] + v[0]] + 1);     }     for (int i = 0; i <= (v.back() - v[0]) * k; i++)       if (dp[i] <= k) printf( %d  , i + v[0] * k);     puts(  );   }   int main() {     build();     while (__--) {       init();       solve();     }   }   