移动撤销
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

在一个无限大的平面直角坐标系中,牛牛初始站在坐标原点(即坐标(0,0))。
现在牛牛可以进行5种操作:
'W':牛牛离开当前格子,向上走一步。即从(x,y)到(x,y+1)。
'A':牛牛离开当前格子,向左走一步。即从(x,y)到(x-1,y)。
'S':牛牛离开当前格子,向下走一步。即从(x,y)到(x,y-1)。
'D':牛牛离开当前格子,向右走一步。即从(x,y)到(x+1,y)。
'Z':牛牛撤销上一步操作,回到之前的格子。
特殊的,若已没有操作可以撤销,则牛牛不进行任何操作。
现在输入牛牛进行的所有操作,请输出牛牛最终所在的坐标。

输入描述:

第一行一个正整数 ,代表操作的数量。
第二行一个长度为 的、仅由'W'、'A'、'S'、'D和'Z'这五种字符构成的字符串。

输出描述:

两个整数x和y,用空格隔开。表示牛牛最终的坐标。
示例1

输入

复制
5
AWZZD

输出

复制
1 0

说明

牛牛的五次操作:(0,0)->(-1,0)->(-1,1)->(-1,0)->(0,0)->(1,0)
示例2

输入

复制
2
ZS

输出

复制
0 -1

说明

牛牛的两次操作:(0,0)->(0,0)->(0,-1)

备注:

对于20%的样例,,且字符串中没有'Z'字符。
对于另外20%的样例,,且所有的Z均不为无效撤销操作。
对于100%的样例,