C - IQad

Languages: C, C++, Java, Tiger, Python, Pascal, JavaScript, Haskell, C#
Time & Memory limits: (details)

Fito está trabajando en una nueva versión de un IQad (Este es un clon de un IPad J). Este dispositivo tiene una pantalla de $N \times N$ pixeles, cada pixel puede ser $0$ o $1$. El procesador de este dispositivo tiene cuatro comandos que interactúan sobre la pantalla.  Los comandos son:

$RS \quad i \quad x$: Este comando cambia todas las celdas de la fila $i$ por $x$.
$CS \quad i \quad x$: Este comando cambia todas las celdas de la columna $i$ por $x$.
$RQ \quad i$: Este comando imprime en una línea la cantidad de  celdas cuyo valor es $0$ en la fila $i$.
$CQ \quad i$: Este comando imprime en una línea la cantidad de celdas cuyo valor es $0$ en la columna $i$.

Donde $1 \le i \le N$ y $x$ solo puede ser $0$ o $1$, los comandos y los parámetros están separados por un espacio entre sí.


Input

La primera línea de la entrada contiene dos números enteros, $N$ y $Q$ separados por un espacio, donde $N$ indica el tamaño de la pantalla y $Q$ la cantidad de comandos que se ejecutan $(1 \le N, Q \le 500000)$. Luego en $Q$ líneas los comandos que se ejecutan.

Output

Por cada comando de tipo $RQ$ o $CQ$ usted debe imprimir en una línea el resultado correspondiente.

Sample test(s)

Input
3 6 RQ 1 CS 1 1 RQ 1 CQ 1 RS 1 0 CQ 1
Output
3 2 0 1