#include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long int ll; #define REP(i,n) for(int i=0; i<(n); ++i ) #define REPR(i,n) for(int i=(n); i>=0; --i) #define FOR(i,a,n) for(int i=(a); i<(n); ++i ) #define FORR(i,a,n) for(int i=(n); i>=(a); --i) #define DOUT(x) cerr << #x << " = " << x << "\n"; #define COUT(x) cout << (x) << "\n"; // 盤面生成アルゴリズム // sz - 1辺の長さ // h - 最大の厚さ vector> function(int sz, int h) { // 盤面初期化 vector> arr; arr.resize(sz); REP(i, sz)arr[i].resize(sz, 1); // 盤面改変 int r = 1, r0, r1, r2, r3, r4; auto max = sz < 100 ? sz : 100; for (auto i = 0; i < max; i++) { r0 = r = (r % 10009) * 99991; r1 = r = (r % 10009) * 99991; r2 = r = (r % 10009) * 99991; r3 = r = (r % 10009) * 99991; r4 = r = (r % 10009) * 99991; auto sqrX = r0 % sz; auto sqrY = r1 % sz; auto sqrW = r2 % (sz - sqrX) % 100; auto sqrH = r3 % (sz - sqrY) % 100; auto brdH = (r4 % h) + 1; FOR(x, sqrX, sqrX + sqrW) { FOR(y, sqrY, sqrY + sqrH) { arr[x][y] = brdH; } } } return move( arr); }; std::vector Split(const std::string& str, char delm) { std::string tmp; std::vector res; std::stringstream s(str); while (std::getline(s, tmp, delm)) { res.push_back(tmp); } return std::move(res); } vector> res; vector> v; signed main() { ios::sync_with_stdio(false); cin.tie(0); int a, b; cin >> a >> b; set res; int sum = 0; REP(i, a+1) { sum = i; REP(j, b+1) { res.insert(sum+ 5 * j); } res.insert(sum); } for (auto i = res.begin(); i != res.end(); ++i) { if (*i == 0)continue; COUT(*i); } return 0; }