#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; }