#include <bits/stdc++.h>
int a[60][60][60], n, m, r, s, t, c, min[59][60][60];
int main() {
  scanf("%d%d%d", &n, &m, &r);
  for (int i = 0; i < m; i++)
    for (int j = 0; j < n; j++)
      for (int k = 0; k < n; k++) scanf("%d", &a[i][j][k]);
  for (int i = 0; i < m; i++)
    for (int l = 0; l < n; l++)
      for (int j = 0; j < n; j++)
        for (int k = 0; k < n; k++)
          if (a[i][j][k] > a[i][j][l] + a[i][l][k])
            a[i][j][k] = a[i][j][l] + a[i][l][k];
  for (int j = 0; j < n; j++)
    for (int k = 0; k < n; k++) {
      min[0][j][k] = a[0][j][k];
      for (int i = 1; i < m; i++)
        if (min[0][j][k] > a[i][j][k]) min[0][j][k] = a[i][j][k];
    }
  for (int i = 1; i <= 58; i++) {
    for (int j = 0; j < n; j++)
      for (int k = 0; k < n; k++) min[i][j][k] = min[i - 1][j][k];
    for (int w = 0; w < n; w++)
      for (int j = 0; j < n; j++)
        for (int k = 0; k < n; k++)
          if (min[i][j][k] > min[0][j][w] + min[i - 1][w][k])
            min[i][j][k] = min[0][j][w] + min[i - 1][w][k];
  }
  while (r > 0) {
    scanf("%d%d%d", &s, &t, &c);
    printf("%d\n", c < 58 ? min[c][s - 1][t - 1] : min[58][s - 1][t - 1]);
    --r;
  }
  return 0;
}
