using
System;
using
System.Collections.Generic;
class
GFG {
static
void
solve(
bool
[, ] arr)
{
int
n = arr.GetLength(0);
int
m = arr.GetLength(1);
HashSet<
int
> row =
new
HashSet<
int
>();
HashSet<
int
> col =
new
HashSet<
int
>();
bool
[, ] original =
new
bool
[n, m];
for
(
int
i = 0; i < n; i++) {
for
(
int
j = 0; j < m; j++) {
original[i, j] = arr[i, j];
}
}
for
(
int
i = 0; i < n; i++) {
for
(
int
j = 0; j < m; j++) {
if
(arr[i, j]) {
row.Add(i);
col.Add(j);
}
}
}
foreach
(
var
it
in
row)
{
for
(
int
i = 0; i < m; i++) {
arr[it, i] =
true
;
}
}
foreach
(
var
it
in
col)
{
for
(
int
i = 0; i < n; i++) {
arr[i, it] =
true
;
}
}
bool
[, ] result =
new
bool
[n, m];
for
(
int
i = 0; i < n; i++) {
for
(
int
j = 0; j < m; j++) {
result[i, j] = arr[i, j];
}
}
row.Clear();
col.Clear();
for
(
int
i = 0; i < n; i++) {
for
(
int
j = 0; j < m; j++) {
if
(!arr[i, j]) {
row.Add(i);
col.Add(j);
}
}
}
foreach
(
var
it
in
row)
{
for
(
int
i = 0; i < m; i++) {
arr[it, i] =
false
;
}
}
foreach
(
var
it
in
col)
{
for
(
int
i = 0; i < n; i++) {
arr[i, it] =
false
;
}
}
if
(arr == original) {
Console.WriteLine(-1);
}
else
{
for
(
int
i = 0; i < n; i++) {
for
(
int
j = 0; j < m; j++) {
if
(result[i, j]) {
Console.Write(1 +
" "
);
}
else
{
Console.Write(0 +
" "
);
}
}
Console.WriteLine();
}
}
}
public
static
void
Main(
string
[] args)
{
bool
[, ] v
=
new
bool
[2, 3] { {
true
,
false
,
true
},
{
false
,
false
,
false
} };
solve(v);
}
}