unittest
{
	assert( [
		"2 2",
		"*.",
		".*",
	].parse.expand.solve == "*.\n*.\n.*\n.*" );
	assert( [
		"1 4",
		"***.",
	].parse.expand.solve == "***.\n***." );
	assert( [
		"9 20",
		".....***....***.....",
		"....*...*..*...*....",
		"...*.....**.....*...",
		"...*.....*......*...",
		"....*.....*....*....",
		".....**..*...**.....",
		".......*..*.*.......",
		"........**.*........",
		".........**.........",
	].parse.expand.solve == ".....***....***.....\n.....***....***.....\n....*...*..*...*....\n....*...*..*...*....\n...*.....**.....*...\n...*.....**.....*...\n...*.....*......*...\n...*.....*......*...\n....*.....*....*....\n....*.....*....*....\n.....**..*...**.....\n.....**..*...**.....\n.......*..*.*.......\n.......*..*.*.......\n........**.*........\n........**.*........\n.........**.........\n.........**........." );
}



import std.conv;
import std.range;
import std.stdio;
import std.typecons;

void main()
{
	stdin.byLineCopy.parse.expand.solve.writeln;
}

auto parse( Range )( Range input )
if( isInputRange!Range && is( ElementType!Range == string ) )
{
	auto hw = input.front.split.to!( long[] );
	auto css = new string[]( hw[ 0 ] );
	foreach( ref cs; css )
	{
		input.popFront;
		cs = input.front;
	}
	return tuple( css );
}

auto solve( string[] css )
{
	auto anss = new string[]( css.length * 2 );
	
	for( auto i = 0L; i < css.length; i++ )
	{
		anss[ i * 2     ] = css[ i ];
		anss[ i * 2 + 1 ] = css[ i ];
	}
	
	return anss.join( "\n" );
}
