#include <bits/stdc++.h>
using namespace std;
int matrix[100][100];
bool visited[100][100];
int dx[4] = {-1, 0, 1, 0};
int dy[4] = {0, 1, 0, -1};
int n, m;
void visit(int r, int c);
void unvisit(int r, int c);
bool isValid(int row, int col) {
  return (row >= 0 && row < n) && (col >= 0 && col < m);
}
void dfsAdj(int r, int c) {
  for (int k = 0; k < 4; k++) {
    int xadj = c + dx[k];
    int yadj = r + dy[k];
    if (isValid(yadj, xadj) && matrix[r][c] == matrix[yadj][xadj]) {
      if (!visited[yadj][xadj]) {
        visit(yadj, xadj);
      } else {
        unvisit(yadj, xadj);
      }
    }
  }
}
void visit(int r, int c) {
  visited[r][c] = true;
  matrix[r][c]++;
  dfsAdj(r, c);
}
void unvisit(int r, int c) {
  visited[r][c] = false;
  matrix[r][c]--;
  dfsAdj(r, c);
}
int main() {
  int t;
  cin >> t;
  while (t--) {
    cin >> n >> m;
    for (int r = 0; r < n; r++) {
      for (int c = 0; c < m; c++) {
        cin >> matrix[r][c];
        visited[r][c] = false;
      }
    }
    for (int r = 0; r < n; r++) {
      for (int c = 0; c < m; c++) {
        for (int k = 0; k < 4; k++) {
          int xadj = c + dx[k];
          int yadj = r + dy[k];
          if (isValid(yadj, xadj) && matrix[r][c] == matrix[yadj][xadj]) {
            if (!visited[r][c]) {
              visit(r, c);
            } else {
              unvisit(r, c);
            }
          }
        }
      }
    }
    for (int r = 0; r < n; r++) {
      for (int c = 0; c < m; c++) {
        cout << matrix[r][c] << " ";
      }
      cout << endl;
    }
  }
}
