/*Alejandra Arias*/
#include <stdio.h>
#include <string.h>

void ordenar( void );
void cambio(char c1, char c2 );

int areadedibujo,numerodecuadrados,i,j,h,k,z;
char identificadores[9],orden[9],dibujo[41][40],patron;

main()
{
	scanf("%d",&areadedibujo);
	if(areadedibujo>40)
	{
		printf("Error en dato areadibujo");
		return 0;
	}
	scanf("%d",&numerodecuadrados);
	gets(identificadores);
	gets(identificadores);
	printf("\nstrlen(identificadores) : %s",identificadores);
	printf("strlen(identificadores) : %d , numerodecuadrados : %d",strlen(identificadores),numerodecuadrados);
	if(strlen(identificadores)!=numerodecuadrados)
	{
		printf("Error en datos numerodecuadrados e identificadores");
		return 0;
	}
	strcpy(orden,identificadores);
	for(i=0;i<areadedibujo;i++)
	{
		gets(dibujo[i]);
	}
	ordenar();
	return 0;
}

void ordenar( void )
{
	for(i=0;identificadores[i]!='\0';i++)
	{
		patron=identificadores[i];
		for(j=0;j<areadedibujo;j++)
		{
			for(h=0;h<areadedibujo;h++)
			{
				if(dibujo[j][h]==patron && dibujo[j+1][h]!=patron && dibujo[j+1][h]!=' ' && dibujo[j+1][h]!='\0')
				{
			 		cambio(patron,dibujo[j+1][h]);
				}
				if(dibujo[j+1][h]==patron && dibujo[j][h]!=patron && dibujo[j][h]!=' ' && dibujo[j][h]!='\0')
				{
					cambio(patron,dibujo[j][h]);
				}
			}
		}	
	}
	for(i=0;identificadores[i]!='\0';i++)
	{
		patron=identificadores[i];
		for(j=0;j<areadedibujo;j++)
		{
			for(h=0;h<areadedibujo;h++)
			{
				if(dibujo[j][h]==patron && dibujo[j][h+1]!=patron && dibujo[j][h+1]!=' ' && dibujo[j][h+1]!='\0')
				{
			 		cambio(patron,dibujo[j+1][h]);
				}
				if(dibujo[j][h+1]==patron && dibujo[j][h]!=patron && dibujo[j][h]!=' ' && dibujo[j][h]!='\0')
				{
					cambio(patron,dibujo[j][h]);
				}
			}
		}	
	}	
	puts(orden);
}

void cambio(char c1, char c2 )
{
	char aux;
	for(k=0;orden[k]!='\0';k++)
		if(orden[k]==c1)
		{
			for(z=0;orden[z]!='\0';z++)
			{
				if(orden[z]==c2)
				{
					aux=c1;
					c1=c2;
					c2=aux;
					break;
				}
			}
			break;
		}
}
