#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define MAXK 1000050 int N, M, K; char P[MAXK]; pair 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 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; }