#include <bits/stdc++.h>
using namespace std;
int dp[35][35][55];
int dfs(int n, int m, int k) {
  if (k <= 0 || n * m == k) return 0;
  int &ans = dp[n][m][k];
  if (ans)
    return ans;
  else
    ans = 0x3f3f3f3f;
  for (int i = 1; i < n; i++) {
    for (int j = 0; j <= k; j++) {
      ans = min(ans, dfs(i, m, j) + dfs(n - i, m, k - j) + m * m);
    }
  }
  for (int i = 1; i < m; i++) {
    for (int j = 0; j <= k; j++) {
      ans = min(ans, dfs(n, i, j) + dfs(n, m - i, k - j) + n * n);
    }
  }
  return ans;
}
int main() {
  int numberofquery;
  scanf("%d", &numberofquery);
  while (numberofquery--) {
    int n, m, k;
    scanf("%d%d%d", &n, &m, &k);
    printf("%d\n", dfs(n, m, k));
  }
  return 0;
}
