#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
static vector<string> split(string& input, char delimiter);
bool haveTwoChar(string& input);
struct Token {
string alpha;
string digites;
int num;
};
Token getToken(string& input);
vector<int> getPosition(string& input);
int main() {
string input;
cin >> input;
vector<string> tokens = split(input, ';');
vector<string> legalTokens;
int x = 0, y = 0;
// 遍历 字符串数组,过滤掉不合法的字符串
for (auto k : tokens) {
// 不能为空,不能只有一个字符或数字,不能大于4个字节长度
if (k.empty() || k.size() == 1 || k.size() >= 4)
continue;
// 首字母不是 A/D/W/S
if (k[0] != 'A' && k[0] != 'S' && k[0] != 'D' && k[0] != 'W')
continue;
// 不能有两个字母
if (haveTwoChar(k))
continue;
legalTokens.push_back(k);
}
for (string k : legalTokens) {
vector<int> l = getPosition(k);
x += l[0];
y += l[1];
//cout << k << ", x = " << l[0] << ", y = " << l[1] << endl;
}
cout << x << "," << y << endl;
return 0;
}
// 根据 分号 分割字符串 为数组
vector<string> split(string& input, char delimiter) {
vector<string> tokens;
string token;
for (char c : input) {
if (c == delimiter) {
tokens.push_back(token);
token.clear();
} else {
token += c;
}
}
return tokens;
}
// 判读字符串是否有超过两个字符
bool haveTwoChar(string& input) {
int sum = 0;
for (char c : input) {
if (isalpha(c))
sum++;
}
return sum > 1;
}
// 处理字符串 分离 首字母 和 后面的数字
Token getToken(string& input) {
Token result;
for (char c : input) {
if (isalpha(c)) {
result.alpha = c;
} else if (isdigit(c)) {
result.digites += c;
}
}
result.num = stoi(result.digites);
return result;
}
// 返回移动的距离
vector<int> getPosition(string& input) {
vector<int> result = vector<int>(2, 0);
string digites;
for (char c : input) {
if (isdigit(c)) {
digites += c;
}
}
int num = stoi(digites);
switch (input[0]) {
case 'A':
result[0] = (-1) * num;
break;
case 'S':
result[1] = (-1) * num;
break;
case 'D':
result[0] = num;
break;
case 'W':
result[1] = num;
break;
}
return result;
}