import java.util.*;
class Graph{
    // HashMap<Integer,List<Integer>>map;
    // Graph(){
    //     map=new HashMap<>();
    // }
    // List<Integer> lis=new ArrayList<>();
    // void addvertex(int vertex){
    //     if(!map.containsKey(vertex))
    //  map.put(vertex,new ArrayList<>());
    // }
    // void addedges(int v1,int v2){
    //   addvertex(v1);
    //   addvertex(v2);
    //   map.get(v1).add(v2);
    //   map.get(v2).add(v1);
      
    // }
    // void print(){
    //     System.out.println(map);
    // }
    // void bfs(int vertex){
    //     Queue<Integer>q=new LinkedList<>();
    //     HashSet<Integer>visited=new HashSet<>();
    //     q.add(vertex);
    //     visited.add(vertex);
    //     while(!q.isEmpty()){
    //         int fst=q.poll();
    //         System.out.print(fst+" ");
    //         for(int neighbour:map.get(fst)){
    //             if(!visited.contains(neighbour)){
    //                 q.add(neighbour);
    //                 visited.add(neighbour);
    //             }
    //         }
    //     }
    // }
    // void dfs(int vertex){
    //     HashSet<Integer>visited=new HashSet<>();
    //     dfshelper(vertex,visited);
    // }
    // void dfshelper(int vertex,HashSet<Integer>visited){
    //     visited.add(vertex);
    //     System.out.print(vertex+" ");
    //     for(int neighbour:map.get(vertex)){
    //         if(!visited.contains(neighbour)){
    //             dfshelper(neighbour,visited);
    //         }
    //     }
    // }
    int n;
    int matrix[][];
    Graph(int n){
        this.n=n;
        matrix=new int[n][n];
    }
    void addedges(int v1,int v2){
      matrix[v1][v2]=1;
      matrix[v2][v1]=1;
      
    }
    void print(){
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                System.out.print(matrix[i][j]+" ");
            }
            System.out.println();
        }
    }
}
public class main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int e=sc.nextInt();
        if(n<=0 || n>10 || e<=0 || e>10){
            System.out.println("Invalid input");
            return;
        }
        Graph g=new Graph(n);
        // g.addedges(0,1);
        // g.addedges(1,2);
        // g.addedges(2,3);
        // g.addedges(0,2);
        // g.bfs(0);
        for(int i=0;i<n;i++){
            int v1=sc.nextInt();
            int v2=sc.nextInt();
            if(v1<=0 || v1>v || v2<=0 || v2>n){
            System.out.println("Invalid input");
            return;
        }
        g.addedges(v1,v2);
            
        }
        g.print();
        // System.out.println();
        // g.dfs(0);
    }
}