#include <cstdio>
#include <iostream>
#include <fstream>
#include <vector>
#include <list>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <bitset>
#include <algorithm>
#include <sstream>
#include <iomanip>
#include <cmath>
#include <cstdlib>
#include <cctype>
#include <cstring>
#include <string>
#include <ctime>
#include <cassert>
#include <utility>

using namespace std;

#define MAXK 1000050

int N, M, K;
char P[MAXK];

pair<int, int> getDir(char c) {
    if(c == 'U')
        return make_pair(-1, 0);
    if(c == 'D')
        return make_pair(1, 0);
    if(c == 'L')
        return make_pair(0, -1);
    return make_pair(0, 1);
}

int main() {
//	freopen("date.in", "r", stdin);
//	freopen("date.out","w", stdout);
	
	scanf("%d %d %d\n", &N, &M, &K);
	fgets(P, sizeof(P), stdin);
	
	int di = 0;
	int dj = 0;
	int maxi = 0;
	int mini = 0;
	int maxj = 0;
	int minj = 0;
	for(int i = 0; i < K; i++) {
        pair<int, int> dir = getDir(P[i]);
        di += dir.first;
        dj += dir.second;
        maxi = max(maxi, di);
        mini = min(mini, di);
        maxj = max(maxj, dj);
        minj = min(minj, dj);
	}
	
	int ans = 0;
	for(int i = 1; i <= N; i++)
        for(int j = 0; j <= M; j++)
            if(i + mini >= 1 && i + maxi <= N && j + minj >= 1 && j + maxj <= M)
                ans++;
    
    printf("%d\n", ans);
	
	return 0;
}