#include <bits/stdc++.h>
using namespace std;
struct T {
  int i, j;
  int d;
  T(int ii = 0, int jj = 0) {
    i = ii;
    j = jj;
  }
} b, e, t, tt;
int di[] = {1, 0, -1, 0};
int dj[] = {0, 1, 0, -1};
bool operator==(T t1, T t2) { return t1.i == t2.i && t1.j == t2.j; }
bool operator!=(T t1, T t2) { return !(t1 == t2); }
int i, j, k, l, m, n, o, z;
int f[102][102];
char a[102][102];
char s[1002];
T pp[102];
int getlen(T t) {
  if (a[t.i][t.j] >= '0' && a[t.i][t.j] <= '9') return a[t.i][t.j] - '0';
  return 1;
}
bool bad(T t) { return t.i < 0 || t.i >= n || t.j < 0 || t.j >= m; }
int main() {
  scanf("%d%d%d", &n, &m, &k);
  for (i = 0; i < n; i++) {
    scanf("%s", &a[i]);
    for (j = 0; j < m; j++)
      if (a[i][j] >= 'a' && a[i][j] <= 'z') pp[a[i][j] - 'a'] = T(i, j);
  }
  scanf("%d%d%s%d%d", &b.i, &b.j, &s, &e.i, &e.j);
  b.i--;
  b.j--;
  e.i--;
  e.j--;
  for (i = 0; i < 26; i++)
    for (j = 0; j < 26; j++) f[i][j] = (i == j) - 1;
  for (o = 0; o < 26; o++)
    if (pp[o].i || pp[o].j) {
      t = pp[o];
      for (l = 0; l < 4; l++) {
        tt.i = t.i + di[l];
        tt.j = t.j + dj[l];
        if (bad(tt)) continue;
        if (a[tt.i][tt.j] == '#') continue;
        z = 1;
        while (a[tt.i][tt.j] < 'a' || a[tt.i][tt.j] > 'z') {
          z += a[tt.i][tt.j] - '0';
          tt.i += di[l];
          tt.j += dj[l];
        }
        f[o][a[tt.i][tt.j] - 'a'] = z;
      }
    }
  for (l = 0; l < 4; l++) {
    t = b;
    while (!bad(t) && (t != pp[s[0] - 'a'])) {
      if (bad(t)) break;
      t.i += di[l];
      t.j += dj[l];
    }
    if (bad(t)) continue;
    break;
  }
  t = b;
  while (k >= getlen(t)) {
    k -= getlen(t);
    t.i += di[l];
    t.j += dj[l];
    if (t == pp[s[0] - 'a']) break;
  }
  if (t != pp[s[0] - 'a']) {
    printf("%d %d\n", t.i + 1, t.j + 1);
    return 0;
  }
  for (i = 0; s[i + 1]; i++)
    if (f[s[i] - 'a'][s[i + 1] - 'a'] <= k)
      k -= f[s[i] - 'a'][s[i + 1] - 'a'];
    else
      break;
  if (s[i + 1]) e = pp[s[i + 1] - 'a'];
  b = pp[s[i] - 'a'];
  for (l = 0; l < 4; l++) {
    t = b;
    while (!bad(t) && t != e) {
      if (bad(t)) break;
      t.i += di[l];
      t.j += dj[l];
    }
    if (bad(t)) continue;
    break;
  }
  t = b;
  while (k >= getlen(t)) {
    k -= getlen(t);
    t.i += di[l];
    t.j += dj[l];
    if (t == e) break;
  }
  if (t != e) {
    printf("%d %d\n", t.i + 1, t.j + 1);
    return 0;
  }
  printf("%d %d\n", e.i + 1, e.j + 1);
  return 0;
}
