/*
TASK: trains
LANG: C++
*/
#include <cstdio>
#include <string>
#include <iostream>
using namespace std;

const string lok="(H H]";
const string vyg="[XXX]";
const string cis="(O O)";
string a[16];
int vlsz=lok.size();

void pshvyg(int row,int col,int n)
{
	int i,j;
	for (j=0;j<n;j++)
	{
		for (i=0;i<vlsz;i++)
			a[row][col+i]=vyg[i];
		col+=vlsz;
	}
}

void pshcis(int row,int col,int n)
{
	int i,j;
	for (j=0;j<n;j++)
	{
		for (i=0;i<vlsz;i++)
			a[row][col+i]=cis[i];
		col+=vlsz;
	}
}

int main()
{
	int n,m;
	int x,y,z;
	scanf("%d%d",&n,&m);
	int i,j;

	for (i=0;i<n;i++)
		for (j=0;j<=m;j++)
			a[i]+='#';

	for (i=0;i<n;i++)
	{
		scanf("%d%d%d",&x,&y,&z);
		if (x==0) continue;
		for (j=x;j<x+vlsz;j++)
			a[i][j]=lok[j-x];
		pshvyg(i,j,y);
		j+=y*vlsz;
		pshcis(i,j,z);
	}

	for (i=0;i<n;i++)
	{
		for (j=1;j<=m;j++)
			cout<<a[i][j];
		//cout<<endl;
		printf("\n");
	}

	return 0;
}
