#include<cstdio>
#include<cstring>
#include<cmath>
#include<map>
#include<set>
#include<string>
#include<algorithm>
#define ll long long
using namespace std;
const int maxn = 10010;
const int inf = 0x3f3f3f3f;
int n, m, N, t;
int a[maxn];
int mp[maxn][107];
int main()
{
scanf("%d", &t);
while (t--)
{
scanf("%d", &N);
for (int i = 1; i <= N; ++i)
scanf("%d", &a[i]);
int minn = inf;
for (int i = sqrt((double)N); i >= 1; --i)
{
if (N%i == 0)
{
n = N / i;
m = i;
break;
}
}
sort(a + 1, a + 1 + N);
reverse(a + 1, a + 1 + N);
int num = 0;
int i, j, q;
for (q = 1; num<N; ++q)
{
for (i = q; i <= m - q + 1&&num<N; ++i)
mp[q][i] = a[++num];
for (i = q + 1; i <= n - q + 1&&num<N; ++i)
mp[i][m - q + 1] = a[++num];
for (i = m - q; i >= q&&num<N; --i)
mp[n - q + 1][i] = a[++num];
for (i = n - q; i >= q + 1&&num<N; --i)
mp[i][q] = a[++num];
}
for (i = 1; i <= n; ++i)
{
for (j = 1; j <= m; ++j)
{
if (j != 1)printf(" ");
printf("%d", mp[i][j]);
}
printf("\n");
}
printf("\n");
}
return 0;
}