Is there a polynomial time solution to sort an arbitrary binary square matrix in polynomial time by rows so that the diagonal contains a 1 if any row contains a 1 in that column?

For example given matrix:

```
0 1 1 1 0 r0
1 0 0 1 0 r1
1 1 1 0 1 r2
0 0 0 0 1 r3
0 0 0 1 1 r4
```

A solution would be:

```
1 0 0 1 0 r1
1 1 1 0 1 r2
0 1 1 1 0 r0
0 0 0 1 1 r4
0 0 0 0 1 r3
```

Given a matrix:

```
1 0 0 r0
0 0 1 r1
1 0 1 r2
```

There could be multiple solutions:

```
1 0 0 r0 1 0 1 r2
0 0 1 r1 1 0 0 r0
1 0 1 r2 0 0 1 r1
```