#include <iostream>
#include <vector>
using namespace std;
class matrix_t
{
size_t col_count, row_count;
vector< bool > data;
size_t as_index( const size_t col, const size_t row ) const
{
return row * col_count + col;
}
public:
matrix_t( const size_t col_count, const size_t row_count )
: col_count( col_count )
, row_count( row_count )
, data( row_count*col_count )
{
// nop
}
auto at( const size_t col, const size_t row ) const
{
return data[ as_index( col, row ) ];
}
auto at( const size_t col, const size_t row )
{
return data[ as_index( col, row ) ];
}
istream& read( istream& is )
{
for( size_t r = 0; r < row_count; ++r )
{
for( size_t c = 0; c < col_count; ++c )
{
char t;
is >> t;
at( c, r ) = t == '0' ? false : true;
}
}
return is;
}
ostream& write( ostream& os )
{
for( size_t r = 0; r < row_count; ++r )
{
for( size_t c = 0; c < col_count; ++c )
{
os << at( c, r ) ? '1' : '0';
}
os << endl;
}
return os;
}
};
int main()
{
size_t col, row;
cin >> col >> row;
matrix_t m( col, row );
m.read( cin );
cout << endl;
m.write( cout );
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIG1hdHJpeF90CnsKICBzaXplX3QgY29sX2NvdW50LCByb3dfY291bnQ7CiAgdmVjdG9yPCBib29sID4gZGF0YTsKCiAgc2l6ZV90IGFzX2luZGV4KCBjb25zdCBzaXplX3QgY29sLCBjb25zdCBzaXplX3Qgcm93ICkgY29uc3QKICB7CiAgICByZXR1cm4gcm93ICogY29sX2NvdW50ICsgY29sOwogIH0KCnB1YmxpYzoKCiAgbWF0cml4X3QoIGNvbnN0IHNpemVfdCBjb2xfY291bnQsIGNvbnN0IHNpemVfdCByb3dfY291bnQgKQogICAgOiBjb2xfY291bnQoIGNvbF9jb3VudCApCiAgICAsIHJvd19jb3VudCggcm93X2NvdW50ICkKICAgICwgZGF0YSggcm93X2NvdW50KmNvbF9jb3VudCApCiAgewogICAgLy8gbm9wCiAgfQoKICBhdXRvIGF0KCBjb25zdCBzaXplX3QgY29sLCBjb25zdCBzaXplX3Qgcm93ICkgY29uc3QKICB7CiAgICByZXR1cm4gZGF0YVsgYXNfaW5kZXgoIGNvbCwgcm93ICkgXTsKICB9CgogIGF1dG8gYXQoIGNvbnN0IHNpemVfdCBjb2wsIGNvbnN0IHNpemVfdCByb3cgKQogIHsKICAgIHJldHVybiBkYXRhWyBhc19pbmRleCggY29sLCByb3cgKSBdOwogIH0KCiAgaXN0cmVhbSYgcmVhZCggaXN0cmVhbSYgaXMgKQogIHsKICAgIGZvciggc2l6ZV90IHIgPSAwOyByIDwgcm93X2NvdW50OyArK3IgKQogICAgewogICAgICBmb3IoIHNpemVfdCBjID0gMDsgYyA8IGNvbF9jb3VudDsgKytjICkKICAgICAgewogICAgICAgIGNoYXIgdDsKICAgICAgICBpcyA+PiB0OwogICAgICAgIGF0KCBjLCByICkgPSB0ID09ICcwJyA/IGZhbHNlIDogdHJ1ZTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIGlzOwogIH0KCiAgb3N0cmVhbSYgd3JpdGUoIG9zdHJlYW0mIG9zICkKICB7CiAgICBmb3IoIHNpemVfdCByID0gMDsgciA8IHJvd19jb3VudDsgKytyICkKICAgIHsKICAgICAgZm9yKCBzaXplX3QgYyA9IDA7IGMgPCBjb2xfY291bnQ7ICsrYyApCiAgICAgIHsKICAgICAgICBvcyA8PCBhdCggYywgciApID8gJzEnIDogJzAnOwogICAgICB9CiAgICAgIG9zIDw8IGVuZGw7CiAgICB9CiAgICByZXR1cm4gb3M7CiAgfQoKfTsKCmludCBtYWluKCkKewogIHNpemVfdCBjb2wsIHJvdzsKICBjaW4gPj4gY29sID4+IHJvdzsKCiAgbWF0cml4X3QgbSggY29sLCByb3cgKTsKICBtLnJlYWQoIGNpbiApOwoKICBjb3V0IDw8IGVuZGw7CiAgbS53cml0ZSggY291dCApOwoKICByZXR1cm4gMDsKfQoK