There is a square field of size n × n in which two cells are marked. These cells can be in the same row or column.

You are to mark two more cells so that they are the corners of a rectangle with sides parallel to the coordinate axes.

For example, if n=4 and a rectangular field looks like this (there are asterisks in the marked cells):

$$$ \begin{matrix} . & . & * & . \\\ . & . & . & . \\\ * & . & . & . \\\ . & . & . & . \\\ \end{matrix} $$$

Then you can mark two more cells as follows

$$$ \begin{matrix} * & . & * & . \\\ . & . & . & . \\\ * & . & * & . \\\ . & . & . & . \\\ \end{matrix} $$$

If there are several possible solutions, then print any of them.

Input

The first line contains a single integer t (1 ≤ t ≤ 400). Then t test cases follow.

The first row of each test case contains a single integer n (2 ≤ n ≤ 400) — the number of rows and columns in the table.

The following n lines each contain n characters '.' or '*' denoting empty and marked cells, respectively.

It is guaranteed that the sums of n for all test cases do not exceed 400.

It is guaranteed that there are exactly two asterisks on the field. They can be in the same row/column.

It is guaranteed that the solution exists.

Output

For each test case, output n rows of n characters — a field with four asterisks marked corresponding to the statements. If there multiple correct answers, print any of them.

Example

Input


6
4
..*.
....
*...
....
2
*.
.*
2
.*
.*
3
*.*
...
...
5
.....
..*..
.....
.*...
.....
4
....
....
*...
*...


Output


*.*.
....
*.*.
....
**
**
**
**
*.*
*.*
...
.....
.**..
.....
.**..
.....
....
....
**..
**..
#include <bits/stdc++.h>
using namespace std;

template <typename Arg1>
void prn(bool space, Arg1&& arg1)
{ cout << arg1; if (space) cout << " "; else cout << "\n"; }
template <typename Arg1, typename... Args>
void prn(bool space, Arg1&& arg1, Args&&... args)
{ prn(space, arg1); prn(space, args...); }


#define fastIO          ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0)
#define ll              long long
#define pb              push_back
#define mp              make_pair
#define setbit(x)       __builtin_popcountll(x)
#define init(c,a)       memset(c,a,sizeof(c))
#define all(c)          c.begin(),c.end()
#define debug(x)        cout << #x << " : " << x << endl;
#define ps(x,y)         fixed<<setprecision(y)<<x
#define ff                  first
#define ss                  second
#define mem1(a)           memset(a,-1,sizeof(a))
#define mem0(a)           memset(a,0,sizeof(a))

typedef pair<int, int>	pii;
typedef pair<ll, ll>	pll;
typedef vector<int>		vi;
typedef vector<ll>		vl;
typedef vector<pii>		vpii;
typedef vector<pll>		vpll;
typedef vector<vi>		vvi;
typedef vector<vl>		vvl;


const ll mod = 1000000007;
const ll MOD = 998244353;
const ll inf = 1e18;
const ll MAX = 2e5 + 1;



inline ll add(ll a, ll b) {return ((a % mod) + (b % mod)) % mod;}
inline ll sub(ll a, ll b) {return ((a % mod) - (b % mod) + mod) % mod;}
inline ll mul(ll a, ll b) {return ((a % mod) * (b % mod)) % mod;}

vector<ll> fac(1e6);
ll pwr(ll x, ll n) {
	x = x % mod;
	if (!n) return 1;
	if (n & 1) return mul(x, pwr(mul(x, x), (n - 1) / 2));
	else return pwr(mul(x, x), n / 2);
}

ll modinv(ll n) {
	return pwr(n, mod - 2);
}
// O(logn) for[1,n]
ll inv(ll i) {
	if (i == 1) return 1;
	return (mod - (mod / i) * inv(mod % i) % mod) % mod;
}

ll ncr(ll n, ll r) {
	ll ans = 1;
	if (r != 0 && r != n) {
		ans = fac[n] * modinv(fac[r]) % mod * modinv(fac[n - r]) % mod;
	}
	return ans;
}
void pre() {
	fac[0] = 1;
	for (int i = 1; i < (int) fac.size(); i++) {
		fac[i] = (fac[i - 1] * i) % mod;
	}
}

bool isPowerOfTwo(int x)
{
	/* First x in the below expression is for the case when x is 0 */
	return x && (!(x & (x - 1)));
}


void solve()
{
	int n;
	cin >> n;
	string s[n];
	for (int i = 0; i < n; i++)
		cin >> s[i];

	vector<int> x, y;
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			if (s[i][j] == '*')
			{
				x.pb(i);
				y.pb(j);
			}
		}
	}


	if (x[0] == x[1])
	{
		int newx = 0;
		if (x[0] == 0)
			newx = n - 1;
		s[newx][y[0]] = '*';
		s[newx][y[1]] = '*';
	}
	else if (y[0] == y[1])
	{
		int newy = 0;
		if (y[0] == 0)
			newy = n - 1;
		s[x[0]][newy] = '*';
		s[x[1]][newy] = '*';
	}
	else
	{
		s[x[0]][y[1]] = '*';
		s[x[1]][y[0]] = '*';
	}


	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < n; j++)
		{
			cout << s[i][j];
		}

		cout << endl;
	}
}

int main()
{
	fastIO;
#ifndef ONLINE_JUDGE
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
#endif
	int t = 1;
	cin >> t;
	while (t--)
	{
		solve();
	}

	return 0;
}
