#include <bits/stdc++.h>
using namespace std;
int T, n, m, k, falg;
vector<vector<int> > a;
void print() {
  if (falg)
    for (int j = 1; j <= m; j++, puts(""))
      for (int i = 1; i <= n; i++) putchar(a[i][j] ? '*' : '.');
  else
    for (int i = 1; i <= n; i++, puts(""))
      for (int j = 1; j <= m; j++) putchar(a[i][j] ? '*' : '.');
}
bool dfs(int x, int y, int nw) {
  if (nw > k) return false;
  if (x > n) {
    if (nw == k) return true;
    return false;
  }
  for (int i = ((x == 1 && y == 1) || (x > 1 && a[x - 1][y]) ||
                (y > 1 && a[x][y - 1])),
           sum;
       i >= 0; i--) {
    a[x][y] = i, sum = nw;
    if (a[x][y] && x > 1) {
      sum += a[x - 1][y] && a[x][y - 1];
      sum += a[x - 1][y] && a[x - 1][y - 1];
      sum += a[x][y - 1] && a[x - 1][y - 1];
      if (y < m) sum += a[x - 1][y] && a[x - 1][y + 1];
    }
    if (dfs(x + (y == m), y % m + 1, sum)) return true;
  }
  return false;
}
bool work(int d, int x, int y) {
  if (!d) return true;
  if (d == 1) {
    if (y < m) return a[x][m] = 1, true;
    if (x < n) return a[x + 1][1] = 1, true;
    return false;
  }
  if (d == 2) {
    if (y < m - 1) return a[x][m - 1] = 1, true;
    if (x < n) return a[x + 1][2] = 1, true;
    return false;
  }
  if (d == 3) {
    if (y < m - 2) return a[x][m] = a[x][m - 2] = 1, true;
    if (x < n) {
      if (y > 4) return a[x + 1][1] = a[x + 1][3] = 1, true;
      if (y > 3) return a[x + 1][2] = a[x][m] = 1, true;
      return a[x + 1][1] = a[x][m - 1] = 1, true;
    }
    if (y == m - 2 && n == 3)
      return a[x][y] = a[x][y + 1] = 1, a[1][m] = a[2][m] = a[3][m] = 0, true;
    return false;
  }
}
void solve() {
  scanf("%d%d%d", &n, &m, &k), falg = false;
  if (k > 4 * (n - 1) * (m - 1)) return puts("-1"), void();
  if (n > m) swap(n, m), falg = true;
  a.resize(n + 1);
  for (int i = 1; i <= n; i++) {
    a[i].clear(), a[i].resize(m + 1);
  }
  if (n * m <= 22) {
    if (dfs(1, 1, 0))
      return print();
    else
      return puts("-1"), void();
  }
  int sum = 0;
  for (int i = 1, nw; i <= n; i++)
    for (int j = 1; j <= m; j++) {
      a[i][j] = 1, nw = sum;
      if (i > 1) {
        nw += a[i - 1][j] && a[i][j - 1];
        nw += a[i - 1][j] && a[i - 1][j - 1];
        nw += a[i][j - 1] && a[i - 1][j - 1];
        if (j < m) nw += a[i - 1][j] && a[i - 1][j + 1];
      }
      if (nw == k) return print();
      if (nw > k) {
        a[i][j] = 0;
        if (work(k - sum, i, j))
          return print();
        else
          return puts("-1"), void();
      }
      sum = nw;
    }
  if (sum == k)
    return print();
  else
    return puts("-1"), void();
}
int main() {
  scanf("%d", &T);
  while (T--) solve(), puts("");
}
