#include <bits/stdc++.h>
using namespace std;
inline int read() {
  int sum = 0, t = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') t = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    sum = sum * 10 + ch - '0';
    ch = getchar();
  }
  return sum * t;
}
void FS(long long f[1005][1005], int n, int m) {
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++)
      f[i][j] += f[i - 1][j] + f[i][j - 1] - f[i - 1][j - 1];
}
void CF(long long f[1005][1005], int n, int m) {
  for (int i = n; i; i--)
    for (int j = m; j; j--)
      f[i][j] -= f[i - 1][j] + f[i][j - 1] - f[i - 1][j - 1];
}
void add(long long f[1005][1005], int lx, int ly, int rx, int ry) {
  f[lx][ly]++;
  f[lx][ry + 1]--;
  f[rx + 1][ly]--;
  f[rx + 1][ry + 1]++;
}
long long sum(long long f[1005][1005], int lx, int ly, int rx, int ry) {
  return f[rx][ry] - f[lx - 1][ry] - f[rx][ly - 1] + f[lx - 1][ly - 1];
}
long long cnt[26][1005][1005], val[1005][1005], cov[1005][1005];
int mp[1005][1005], a[300005], b[300005], c[300005], d[300005], e[300005];
int n, m, k;
char s[1005];
long long qry(int w, int lx, int ly, int rx, int ry) {
  long long res = 0;
  for (int i = 0; i < 26; i++) res += sum(cnt[i], lx, ly, rx, ry) * abs(w - i);
  return res;
}
int main() {
  n = read(), m = read(), k = read();
  for (int i = 1; i <= n; i++) {
    scanf("%s", s + 1);
    for (int j = 1; j <= m; j++) mp[i][j] = s[j] - 'a';
  }
  for (int i = 1; i <= k; i++) {
    a[i] = read(), b[i] = read(), c[i] = read(), d[i] = read();
    scanf("%s", s);
    e[i] = *s - 'a';
    add(cov, a[i], b[i], c[i], d[i]);
  }
  FS(cov, n, m);
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++) cnt[mp[i][j]][i][j] = k - cov[i][j];
  for (int i = 0; i < 26; i++) CF(cnt[i], n, m);
  for (int i = 1; i <= k; i++) add(cnt[e[i]], a[i], b[i], c[i], d[i]);
  for (int i = 0; i < 26; i++) FS(cnt[i], n, m);
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= m; j++)
      for (int k = 0; k < 26; k++)
        val[i][j] += cnt[k][i][j] * abs(mp[i][j] - k);
  FS(val, n, m);
  for (int i = 0; i < 26; i++) FS(cnt[i], n, m);
  long long ans = 1LL << 61;
  for (int i = 1; i <= k; i++)
    ans = min(ans, val[n][m] - sum(val, a[i], b[i], c[i], d[i]) +
                       qry(e[i], a[i], b[i], c[i], d[i]));
  printf("%lld\n", ans);
}
