import java.util.*;

public class Tasoverkko {
    public static final int KOKO = 7;
    public static boolean[][] verkko = new boolean[KOKO][KOKO];
    public static boolean[] mukana = new boolean[KOKO];

    public static boolean haku(int k, int s, int[][] t) {
        for (int i = 0; i < KOKO; i++) {
            if (i == s) continue;
            if (!verkko[s][i]) continue;
            if (i == t[k][1]) {
                if (k+1 == t.length) return true;
                if (haku(k+1, t[k+1][0], t)) return true;
            } else if (!mukana[i]) {
                mukana[i] = true;
                boolean p = haku(k, i, t);
                mukana[i] = false;
                if (p) return true;
            }
        }
        return false;
    }

    public static boolean onkoK5() {
        if (KOKO < 5) return false;
        for (int a = 0; a < KOKO; a++)
        for (int b = a+1; b < KOKO; b++)
        for (int c = b+1; c < KOKO; c++)
        for (int d = c+1; d < KOKO; d++)
        for (int e = d+1; e < KOKO; e++) {
            mukana = new boolean[KOKO];
            mukana[a] = true;
            mukana[b] = true;
            mukana[c] = true;
            mukana[d] = true;
            mukana[e] = true;
            if (haku(0, a, new int[][] {{a,b},{a,c},{a,d},{a,e},{b,c},
                                        {b,d},{b,e},{c,d},{c,e},{d,e}})) {
                return true;
            }
        }

        return false;
    }

    public static boolean onkoK33() {
        if (KOKO < 6) return false;
        for (int a = 0; a < KOKO; a++)
        for (int b = a+1; b < KOKO; b++)
        for (int c = b+1; c < KOKO; c++)
        for (int d = 0; d < KOKO; d++)
        for (int e = d+1; e < KOKO; e++)
        for (int f = e+1; f < KOKO; f++) {
            mukana = new boolean[KOKO];
            mukana[a] = true;
            mukana[b] = true;
            mukana[c] = true;
            mukana[d] = true;
            mukana[e] = true;
            mukana[f] = true;
            int t = 0;
            for (int i = 0; i < KOKO; i++) {
                if (mukana[i]) t++;
            }
            if (t != 6) continue;
            if (haku(0, a, new int[][] {{a,d},{a,e},{a,f},{b,d},{b,e},
                                        {b,f},{c,d},{c,e},{c,f}})) {
                return true;
            }
        }
        return false;
    }

    public static boolean tasoverkko() {
        return !onkoK5() && !onkoK33();
    }

    public static void tulosta() {
        for (int i = 0; i < KOKO; i++) {
            for (int j = 0; j < KOKO; j++) {
                System.out.print(verkko[i][j] ? "1" : 0);
            }
            System.out.println();
        }
        System.out.println();
    }

    public static void main(String[] args) {
        Random arpoja = new Random();
        int laskuri = 0;
        int tasoverkot = 0;
        while (true) {
            for (int i = 0; i < KOKO; i++) {
                for (int j = i+1; j < KOKO; j++) {
                    boolean k = false;
                    if (arpoja.nextDouble() < 0.5) k = true;
                    verkko[i][j] = k;
                    verkko[j][i] = k;
                }
            }
            laskuri++;
            tulosta();
            if (tasoverkko()) tasoverkot++;
            if (laskuri % 1 == 0) {
                System.out.println(tasoverkot + "/" +
                                   laskuri + "=" +
                                   (1.0*tasoverkot/laskuri));
            }
        }
    }
}
