#include using namespace std; #include using namespace atcoder; #define rep(i, s, e) for (int i = s; i < e; ++i) #define sort_(a) stable_sort(a.begin(), a.end()) #define rsort(a) stable_sort(a.rbegin(), a.rend()) #define sum(a) accumulate(a.begin(), a.end(), 0LL) #define join(a, d) accumulate(a.begin() + 1, a.end(), a[0], [](string s, string t) { return s + d + t; }) #define all(a) a.begin(), a.end() #define degrees(a) a * 180.0 / M_PI; #define radians(a) (a * M_PI) / 180.0; typedef long long ll; const long MOD = 1e9 + 7; int main(int, [[maybe_unused]] char *argv[]) { #ifdef DEBUG freopen(argv[1], "r", stdin); #endif ios_base::sync_with_stdio(false); cin.tie(0); cout << fixed << setprecision(15); int H, W; cin >> H >> W; vector> ans(H, vector(W, 'O')); rep(i, 0, H) { if (i % 2 == 0) { for (int j = 0; j < W; j += 4) { ans[i][j] = 'X'; if (j + 1 < W) ans[i][j + 1] = 'X'; } } else { for (int j = 2; j < W; j += 4) { ans[i][j] = 'X'; if (j + 1 < W) ans[i][j + 1] = 'X'; } } } rep(i, 0, H) { rep(j, 0, W) { cout << ans[i][j]; } cout << "\n"; } return 0; }