// #pragma GCC target("avx2") #pragma GCC optimize("O3") // #pragma GCC optimize("unroll-loops") #include // #include // #include using namespace std; // using mint = atcoder::modint998244353; using P = pair; const int M = 998244353; const long long LM = 1LL << 60; vector solve(const string& s) { int k = 1000; int n = k + 3; vector b(n, string(n, '#')); for (int j = 0; j < n; ++j) { b[0][j] = '.'; b[2][j] = '.'; } b[1][0] = '.'; for (int i = 0; i < n; ++i) { b[i][n - 1] = '.'; } for (int j = k / 2; j < n; ++j) { b[n - 1][j] = '.'; } for (int t = 0; t < 2; ++t) { int f = t * (k / 2 + 2); for (int i = 0; i * 2 < k; ++i) { for (int j = i; j < k / 2; ++j) { b[i * 2 + 2][f + j] = '.'; } } for (int i = 2; i < n; ++i) { b[i][f + k / 2] = '.'; } for (int i = 1; i < k - 1; ++i) { b[i + 2][f + (i - 1) / 2] = '.'; } } for (int i = 1; i <= (int)s.size(); ++i) { if (s[i - 1] == 'x') { if (i == 1) { b[i][n - 1] = '#'; } else if (i == 3) { b[i][k / 2] = '#'; } else if (i % 2 == 0) { b[i][n - 2] = '#'; } else { b[i + 1][k / 2 - 1] = '#'; } } } return b; } int main() { cin.tie(0); ios::sync_with_stdio(0); string s; cin >> s; auto b = solve(s); cout << b.size() << '\n'; for (auto&& i : b) { cout << i << '\n'; } return 0; }