Problem: In this problem you will write a simple code generator for a 2D programming language derived from [Brainfuck](https://en.wikipedia.org/wiki/Brainfuck).

The code in this language is a rectangular grid of characters '.' and 'X'. The code is converted to a Brainfuck program as follows: the characters are read in the usual order (top to bottom, left to right), and each 'X' character is converted a Brainfuck instruction to be executed. The instruction is defined by the left, top and right neighbors of the 'X' character using the following conversion table:

<image>

You are given a string. Output a program in the described language which prints this string.

You can download the language interpreter used for judging here: <https://assets.codeforces.com/rounds/952/puzzling-interpreter.cpp> (use C++11 to compile the code). Note several implementation details:

  * The first step of the language interpretation is conversion to a Brainfuck program, which is then executed.
  * The code must be rectangular, with all lines of the same length. It can have at most 10,000 lines and 10,000 columns, and can have at most 500,000 'X' characters.
  * The code has toroidal topology, i.e. the 'X' on the first line will have top neighbor in the last line.
  * Brainfuck interpreter has 30000 memory cells which store integers from 0 to 255 with increment/decrement done modulo 256.
  * Console input (, command) is allowed in Brainfuck code but has no effect when executed.

Input

The input consists of a single string of characters with ASCII codes between 33 ('!') and 122 ('z'), inclusive. The length of the string is between 1 and 10 characters, inclusive.

Output

Output a program in the described language which, when executed, will print the given message.

Example

Input

$$$

Output

.......X.......
......XXX......
.....XXXXX.....
....XXXXXXX....
...XXXXXXXXX...
..XXXXXXXXXXX..
.XXXXXXXXXXXXX.
...............
X.............X
X..............
X..............
X..............

Note

The example corresponds to the following Brainfuck program:
    
    
           -  
          >+<  
         >+++<  
        >+++++<  
       >+++++++<  
      >+++++++++<  
     >+++++++++++<  
      
    <             >  
    .  
    .  
    .  
    

The triangular block decrements the first memory cell and sets the value of the second memory cell to 36 - the ASCII code of '$' character. The next line after the triangular block moves the memory pointer to the second memory cell, and the next three lines print the '$' character three times.

Solution (in PYTHON3):

Solution:
"""
Codeforces April Fools 2018 Problem G

Author  : chaotic_iak
Language: Python 3.5.2
"""

################################################### SOLUTION

def initialize_solution():
    pass

def main():
    s = input()
    for c in s:
        c = ord(c)
        print("." * 513)
        print("." * (511-2*c) + "X" + "." * (2*c+1))
        print(".X" * 256 + ".")

########################################## PROBLEM CONSTANTS

READ_FROM_FILE = None
OUTPUT_PREFIX = None
INTERACTIVE = False

#################################################### HELPERS

import sys

def read(callback=int, split=True):
    if READ_FROM_FILE:
        ipt = sfile.readline().strip()
    else:
        ipt = input().strip()
    if INTERACTIVE and ipt == "WRONG_ANSWER":
        sys.exit()
    if split:
        return list(map(callback, ipt.split()))
    else:
        return callback(ipt)

def write(value, end="\n"):
    if value is None: return
    try:
        if not isinstance(value, str):
            value = " ".join(map(str, value))
    except:
        pass
    if READ_FROM_FILE:
        tfile.write(str(value, end=end))
    else:
        print(value, end=end)
    if INTERACTIVE:
        sys.stdout.flush()

sfile = None
tfile = None
if READ_FROM_FILE:
    sfile = open(READ_FROM_FILE + ".in", "r")
    sfile.seek(0)
    tfile = open(READ_FROM_FILE + ".out", "w")
if OUTPUT_PREFIX is None:
    result = main()
    if result is not None:
        write(result)
else:
    initialize_solution()
    TOTAL_CASES, = read()
    for CASE_NUMBER in range(1, TOTAL_CASES+1):
        write(OUTPUT_PREFIX.replace("%d", str(CASE_NUMBER)), end="")
        result = main()
        if result is not None:
            write(result)
if sfile is not None: sfile.close()
if tfile is not None: tfile.close()