#include <iostream>
#include <vector>
#include <algorithm>
#include <set>
#include <cstring>

using namespace std;

int main(){

	int n;
	cin>>n;

	//set<pair<int,int> > wrong;

	for(int i = 0; i < n; i++){
		bool wrong[10][10];
		memset(wrong,0,sizeof(wrong));
		int field[10][10];
		for(int j = 0; j < 9; j++){
			for(int k = 0; k < 9; k++){
				cin>>field[j][k];
			}
		}
		// row
		for(int j = 0; j < 9; j++){
			vector<pair<int,int> > p[10];
			for(int k = 0; k < 9; k++){
				p[field[k][j]].push_back(make_pair(k,j));
			}
			// 2ツ禿アツ度ツ暗按湘」ツ出ツ個サツつオツづつ「ツつスツづァツ、wrongツづ永nsert
			for(int k = 1; k < 9; k++){
				if(p[k].size()>=2){
					for(int l = 0; l < p[k].size(); l++){
						//wrong.insert(p[k][l]);
						wrong[p[k][l].first][p[k][l].second]=true;
					}
				}
			}
		}
		// cow
		for(int j = 0; j < 9; j++){
			vector<pair<int,int> > p[10];
			for(int k = 0; k < 9; k++){
				p[field[j][k]].push_back(make_pair(j,k));
			}
			// 2ツ禿アツ度ツ暗按湘」ツ出ツ個サツつオツづつ「ツつスツづァツ、wrongツづ永nsert
			for(int k = 1; k < 10; k++){
				if(p[k].size()>=2){
					for(int l = 0; l < p[k].size(); l++){
						wrong[p[k][l].first][p[k][l].second]=true;
					}
				}
			}
		}
		// mergin
		for(int j = 0; j < 7; j+=3){
			for(int k = 0; k < 7; k+=3){
				if(j==9&&k==0){
					cout<<endl;
				}
				// (k,j)ツづ個地ツ点ツつゥツづァツ探ツ催オツつキツづゥ
				vector<pair<int,int> > p[10];
				for(int l = 0; l < 3; l++){
					for(int m = 0; m < 3; m++){
						p[field[j+l][k+m]].push_back(make_pair(j+l,k+m));
					}
				}
				// 2ツ禿アツ度ツ暗按湘」ツ出ツ個サツつオツづつ「ツつスツづァツ、wrongツづ永nsert
				for(int l = 1; l < 10; l++){
					if(p[l].size()>=2){
						for(int m = 0; m < p[l].size(); m++){
							wrong[p[l][m].first][p[l][m].second]=true;
						}
					}
				}
			}
		}

		for(int j = 0; j < 9; j++){
			for(int k = 0; k < 9; k++){
				if(wrong[j][k]){
					cout<<'*';
				}
				else
					cout<<' ';
				cout<<field[j][k];
			}
			cout<<endl;
		}
		cout<<endl;
	}

	return 0;
}