#include <bits/stdc++.h>
const int maxn = 1e3 + 10;
using namespace std;
inline long long gcd(long long p, long long q) {
  return q == 0 ? p : gcd(q, p % q);
}
inline long long qpow(long long p, long long q) {
  long long f = 1;
  while (q) {
    if (q & 1) f = f * p;
    p = p * p;
    q >>= 1;
  }
  return f;
}
inline void umax(long long &p, long long q) {
  if (p < q) p = q;
}
inline void umin(long long &p, long long q) {
  if (p > q) p = q;
}
inline long long read() {
  long long x = 0;
  int f = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    x = x * 10 + ch - '0';
    ch = getchar();
  }
  return x * f;
}
int n, m, k, t;
long long cnt[26][maxn][maxn], p[maxn][maxn];
char a[maxn][maxn], e[2];
int q, qa[300001], qb[300001], qc[300001], qd[300001], qe[300001];
long long gao(int x) {
  int a = qa[x], b = qb[x], c = qc[x], d = qd[x], e = qe[x];
  long long ret = p[c][d] - p[c][b - 1] - p[a - 1][d] + p[a - 1][b - 1];
  ret = p[n][m] - ret;
  int i;
  for (i = 0; i <= 25; i++) {
    ret += (cnt[i][c][d] - cnt[i][c][b - 1] - cnt[i][a - 1][d] +
            cnt[i][a - 1][b - 1]) *
           abs(e - i);
  }
  return ret;
}
int main() {
  int i, j;
  scanf("%d%d%d", &n, &m, &q);
  for (i = 1; i <= n; i++) scanf("%s", a[i] + 1);
  for (i = 1; i <= q; i++) {
    char e[2];
    scanf("%d%d%d%d%s", &qa[i], &qb[i], &qc[i], &qd[i], e);
    qe[i] = e[0] - 'a';
    cnt[qe[i]][qa[i]][qb[i]]++;
    cnt[qe[i]][qa[i]][qd[i] + 1]--;
    cnt[qe[i]][qc[i] + 1][qb[i]]--;
    cnt[qe[i]][qc[i] + 1][qd[i] + 1]++;
  }
  for (i = 0; i <= 25; i++) {
    for (j = 1; j <= n; j++)
      for (k = 1; k <= m; k++) cnt[i][j][k] += cnt[i][j][k - 1];
    for (j = 1; j <= n; j++)
      for (k = 1; k <= m; k++) cnt[i][j][k] += cnt[i][j - 1][k];
    for (j = 1; j <= n; j++)
      for (k = 1; k <= m; k++) p[j][k] += cnt[i][j][k] * abs(a[j][k] - 'a' - i);
  }
  for (i = 1; i <= n; i++)
    for (j = 1; j <= m; j++)
      p[i][j] += p[i - 1][j] + p[i][j - 1] - p[i - 1][j - 1];
  for (i = 1; i <= n; i++)
    for (j = 1; j <= m; j++) {
      int all = q;
      for (k = 0; k <= 25; k++) all -= cnt[k][i][j];
      cnt[a[i][j] - 'a'][i][j] += all;
      for (k = 0; k <= 25; k++)
        cnt[k][i][j] +=
            cnt[k][i - 1][j] + cnt[k][i][j - 1] - cnt[k][i - 1][j - 1];
    }
  long long ret = 1e18;
  for (i = 1; i <= q; i++) umin(ret, gao(i));
  printf("%lld\n", ret);
  return 0;
}
