#define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef string::const_iterator State; #define Ma_PI 3.141592653589793 #define eps 1e-5 #define LONG_INF 1e18 #define GOLD 1.61803398874989484820458 #define MAX_MOD 1000000007LL #define MOD 998244353LL #define seg_size 262144*4 #define REP(a,b) for(long long a = 0;a < b;++a) int grid[1000][1000] = {}; int main() { int n, k; cin >> n >> k; for (int lane = 1;; ++lane) { int cnt = 0; int tracker[200] = {}; REP(i, lane) { vector> gogo; REP(q, lane) { gogo.push_back(make_pair(tracker[q], q)); grid[i][q] = 0; } sort(gogo.begin(), gogo.end()); for (int q = 0; q < gogo.size() && q < k; ++q) { if (gogo[q].first < k) { grid[i][gogo[q].second] = 1; tracker[gogo[q].second]++; cnt++; } } } if (n <= cnt) { cout << lane << endl; REP(i, lane) { REP(q, lane) { if (grid[i][q] == 1) { n--; if (n >= 0) cout << "#"; else cout << "."; } else { cout << "."; } } cout << endl; } return 0; } } }