#include <bits/stdc++.h>

using namespace std;

int N;
int MX;
char output[500][500];

void PRINT() {
  for(int i=0; i<MX; i++) {
    cout << output[i] << endl;
  }
}

int main() {
  
  int Tc; cin >> Tc;
  bool blank = 0;
  while(Tc--) {
    if(blank) cout << endl;
    blank = 1;
    
    cin >> N;
    MX = N;
     
    for(int i=0; i<N; i++) {
      for(int j=0; j<N; j++) {
	output[i][j] = ' ';
      }
    }
    
    for(int i=0; i<N; i++) output[i][N] = 0;
    
    int cnt = 0;
    
    //////////////// phase 1 START
    
    int x = 0, y = N-1;
    for(int i=0; i<N; i++) {
      output[y-i][x] = '#';
    }
    y -= N-1;
    cnt ++;
    if(cnt == MX) goto EXIT;
        
    for(int i=0; i<N; i++) {
      output[y][x+i] = '#';
    }
    x += N-1;
    cnt ++;
    if(cnt == MX) goto EXIT;
    
    for(int i=0; i<N; i++) {
      output[y+i][x] = '#';
    }
    y += N-1;
    cnt ++;

    if(cnt == MX) goto EXIT;
    
    //////////////// phase 1 END
    
    
    //////////////// phase 2 START
    
    while(1) {
      
      N -= 2;
      for(int i=0; i<N; i++) {
	output[y][x-i] = '#';
      }
      
      x -= N-1;
      cnt ++;
      if(cnt == MX) goto EXIT;
      
      for(int i=0; i<N; i++) {
	output[y-i][x] = '#';
      }
      y -= N-1;
      cnt ++;
      if(cnt == MX) goto EXIT;
      
      N -= 2;
      
      for(int i=0; i<N; i++) {
	output[y][x+i] = '#';
      }
      x += N-1;
      cnt ++;
      if(cnt == MX) goto EXIT;
      
      for(int i=0; i<N; i++) {
	output[y+i][x] = '#';
      }
      y += N-1;
      cnt ++;
      if(cnt == MX) goto EXIT;
    }
    //////////////// phase 2 END
    
  EXIT:;
    PRINT();
  }
  
  return 0;
}