#include <bits/stdc++.h>
using namespace std;
int main() {
  cin.sync_with_stdio(false);
  cout.sync_with_stdio(false);
  string s;
  getline(cin, s);
  unsigned char current = 0;
  int numberOfMinusToAdd = 0;
  char lastrow[3], currentRow[3];
  bool didNotPlaceX;
  for (int i = 0; i < 3; ++i) {
    currentRow[i] = '.';
    cout << currentRow[i];
  }
  cout << '\n';
  for (int i = 0; i < s.size(); ++i) {
    for (int j = 0; j < 3; ++j) lastrow[j] = currentRow[j];
    while (current != s[i]) {
      current--;
      numberOfMinusToAdd++;
    }
    for (int j = 0; j < numberOfMinusToAdd; ++j) {
      didNotPlaceX = true;
      for (int k = 0; k < 3; ++k) {
        if (lastrow[k] == '.' && didNotPlaceX) {
          didNotPlaceX = false;
          currentRow[k] = 'X';
        } else {
          currentRow[k] = '.';
        }
      }
      for (int k = 0; k < 3; ++k) {
        cout << currentRow[k];
        lastrow[k] = currentRow[k];
      }
      cout << '\n';
    }
    for (int k = 0; k < 3; ++k) {
      didNotPlaceX = true;
      if (lastrow[k] == 'X' && didNotPlaceX) {
        currentRow[k] = 'X';
        didNotPlaceX = false;
      } else {
        currentRow[k] = '.';
      }
    }
    for (int k = 0; k < 3; ++k) {
      cout << currentRow[k];
      lastrow[k] = currentRow[k];
    }
    cout << '\n';
    numberOfMinusToAdd = 0;
  }
  cin >> current;
  return 0;
}
