#include <bits/stdc++.h>
using namespace std;
long long power(long long a, long long b, long long md) {
  return (!b ? 1
             : (b & 1 ? a * power(a * a % md, b / 2, md) % md
                      : power(a * a % md, b / 2, md) % md));
}
const int xn = 1e3 + 10;
const int xm = 3e5 + 10;
const int sq = 320;
const int inf = 1e9 + 10;
const long long INF = 1e18 + 10;
const long long mod = 1e9 + 7;
const int base = 257;
long long n, m, k, part[27][xn][xn], ans = INF;
string s[xn];
char c[xm];
pair<pair<int, int>, pair<int, int> > a[xm];
long long get(pair<pair<int, int>, pair<int, int> > x, int id) {
  long long res = part[id][x.second.first][x.second.second];
  res -= part[id][x.second.first][x.first.second - 1];
  res -= part[id][x.first.first - 1][x.second.second];
  res += part[id][x.first.first - 1][x.first.second - 1];
  return res;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  cin >> n >> m >> k;
  for (int i = 1; i <= n; ++i) cin >> s[i], s[i] = '.' + s[i];
  for (int i = 0; i < k; ++i) {
    cin >> a[i].first.first >> a[i].first.second;
    cin >> a[i].second.first >> a[i].second.second >> c[i];
    ++part[c[i] - 'a'][a[i].first.first][a[i].first.second];
    --part[c[i] - 'a'][a[i].first.first][a[i].second.second + 1];
    --part[c[i] - 'a'][a[i].second.first + 1][a[i].first.second];
    ++part[c[i] - 'a'][a[i].second.first + 1][a[i].second.second + 1];
  }
  for (int p = 0; p < 26; ++p) {
    for (int i = 1; i <= n; ++i) {
      for (int j = 1; j <= m; ++j) part[p][i][j] += part[p][i][j - 1];
      for (int j = 1; j <= m; ++j) part[p][i][j] += part[p][i - 1][j];
    }
  }
  for (int i = 1; i <= n; ++i) {
    for (int j = 1; j <= m; ++j) {
      int res = k;
      for (int p = 0; p < 26; ++p) res -= part[p][i][j];
      part[s[i][j] - 'a'][i][j] += res;
      for (int p = 0; p < 26; ++p)
        part[26][i][j] += abs(s[i][j] - 'a' - p) * part[p][i][j];
    }
  }
  for (int p = 0; p < 27; ++p) {
    for (int i = 1; i <= n; ++i) {
      for (int j = 1; j <= m; ++j) part[p][i][j] += part[p][i][j - 1];
      for (int j = 1; j <= m; ++j) part[p][i][j] += part[p][i - 1][j];
    }
  }
  for (int i = 0; i < k; ++i) {
    long long res = get({{1, 1}, {n, m}}, 26);
    res -= get(a[i], 26);
    for (int p = 0; p < 26; ++p) res += abs(c[i] - 'a' - p) * get(a[i], p);
    ans = min(ans, res);
  }
  cout << ans << '\n';
  return 0;
}
