#include using namespace std; int main(void){ long long N, K; cin >> N >> K; long long N_tmp = N; long long cnt = 0; long long add_cnt = 1; long long n; for (n = 0; cnt < N; n++) { if (n % K == 0) { add_cnt = 1; } else { add_cnt += 2; } cnt += add_cnt; } cout << n << endl; vector field; for (int i = 0; i < n; i++) { string s; for (int j = 0; j < n; j++) { if (i / K * K <= j && j < i / K * K + K && N > 0) { s += '#'; N--; } else { s += '.'; } } field.push_back(s); } for (int i = 0; i < field.size(); i++) { cout << field[i] << endl; } int sharp_cnt = 0; for (int i = 0; i < n; i++) { int cnt = 0; for (int j = 0; j < n; j++) { if (field[i][j] == '#') { cnt++; sharp_cnt++; } } assert(cnt <= K); } for (int i = 0; i < n; i++) { int cnt = 0; for (int j = 0; j < n; j++) { if (field[j][i] == '#') cnt++; } assert(cnt <= K); } assert(sharp_cnt == N_tmp); }