/*
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int n) {
int answer = 0;
for (int i = 1; i <= n; i++) {
if (n % i == 0) {
answer += i;
}
}
return answer;
}
int main() {
int n;
int result;
scanf_s("%d", &n);
result = solution(n);
printf("%d", result);
return 0;
}*/
/*
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
long long solution(long long n) {
long long answer = 0;
for (long long int i = 1; i <= n; i++) {
if (n % i == 0) {
answer = (i * i == n ? (i + 1) * (i + 1) : -1);
}
if (answer > 0) {
break;
}
}
return answer;
}
int main() {
long long int n;
long long int result;
scanf_s("%lld", &n);
result = solution(n);
printf("%lld", result);
return 0;
}*/
#include<stdio.h>
int a, b;
int c[105][2] = { 0 };
int d[105][105] = { 0 };
int x, y;
int count = 0;
int zero_count = 0;
void f(int y)
{
for (int i = 1; i <= b; i++)
{
if (d[y][i] == 1)
{
d[y][i] = 0;
d[i][y] = 0;
y = i;
count++;
f(y);
}
else
{
zero_count++;
if (zero_count == b)
{
return;
}
}
}
}
int main() {
scanf_s("%d", &a);
scanf_s("%d", &b);
for (int i =1; i <= a; i++) {
scanf_s("%d %d", &x,&y);
d[x][y] = 1;
d[y][x] = 1;
}
//int z = 1;
//f(z);
for (int i = 1; i <= b; i++) {
for (int j = 1; j <= b; j++) {
printf("%d ", d[i][j]);
}
printf("\n");
}
printf("\n");
printf("%d", count-1);
return 0;
}