#include <iostream>
#define MAX 100
using namespace std;
struct DOTHI
{
int dinh;
int canh;
int a[MAX][MAX];
};
int input(int &value)
{
cin >> value;
return value;
}
void InitMatrix(DOTHI &g)
{
for (int i = 1; i <= g.dinh; i++)
{
for (int j = 1; j <= g.dinh; j++)
{
g.a[i][j] = 0;
}
}
}
void XuatMaTranKe(DOTHI &g, int edge[][2])
{
for (int j = 0; j < g.canh; j++)
{
g.a[edge[j][0]][edge[j][1]] = 1;
}
for (int i = 1; i <= g.dinh; i++)
{
for (int j = 1; j <= g.dinh; j++)
{
cout << g.a[i][j] << " " ;
}
cout <<endl;
}
}
void inputEdge(int edge[][2], DOTHI g)
{
for (int i = 0; i < g.canh; i++)
{
for (int j = 0; j < 2; j++)
{
cin >> edge[i][j];
}
}
}
int main()
{
DOTHI g;
input(g.dinh);
input(g.canh);
int edge[MAX][2];
InitMatrix(g);
inputEdge(edge, g);
XuatMaTranKe(g, edge);
return 0;
}