#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <cassert>

#define FOR(i,a,b) for(int i=a;i<b;i++)
#define REP(i,b) FOR(i,0,b)

using namespace std;

int dp[100][100][100];
char board[100][100][101];

int main(){
	int n, r, c;
	scanf("%d%d%d", &n, &r, &c);
	REP(k, n){
		REP(i, r){
			scanf("%s", board[k][i]);
			fill(dp[k][i], dp[k][i] + c, 1000000000);
		}
	}
	dp[0][0][0] = 0;
	REP(k, n){
		REP(i, r){
			REP(j, c){
				if (j < c - 1){
					if (board[k][i][j + 1] == 'H')
						dp[k + 1][i][j + 1] = min(dp[k][i][j] + board[k + 1][i][j + 1] - '0', dp[k + 1][i][j + 1]);
					else
						dp[k][i][j + 1] = min(dp[k][i][j] + board[k][i][j + 1] - '0', dp[k][i][j + 1]);
				}
				if (i < r - 1){
					if (board[k][i + 1][j] == 'H')
						dp[k + 1][i + 1][j] = min(dp[k][i][j] + board[k + 1][i + 1][j] - '0', dp[k + 1][i + 1][j]);
					else
						dp[k][i + 1][j] = min(dp[k][i][j] + board[k][i + 1][j] - '0', dp[k][i + 1][j]);
				}
			}
		}
	}
	printf("%d\n", dp[n - 1][r - 1][c - 1]);
}