Voltar

uCoder | 1047 | Nível: 3 | Tempo Limite: 10

Frequência

Adaptado por erich.rodriguesf

Competição: OBI 2014, Nível 2, Fase 2


Byteland é uma cidade bastante conhecida por propor variados desafios aos seus habitantes. Recentemente, o prefeito de Byteland, Joãozinho, decidiu propor um desafio que ele gosta de chamar de Tabuleiro da Frequência.

A brincadeira ocorre da seguinte forma. Inicialmente, um tabuleiro com dimensões N × N é dado contendo apenas 0’s. Depois disso, Q operações são propostas, podendo ser de 4 tipos:
    • 1 X R: Atribuir o valor R a todos os números da linha X;
    • 2 X R: Atribuir o valor R a todos os números da coluna X;
    • 3 X: Imprimir o valor mais frequente na linha X;
    • 4 X: Imprimir o valor mais frequente da coluna X.
Joãozinho é muito bom com computadores, mas também é bastante preguiçoso. Sabendo que você é um dos melhores programadores do mundo, ele decidiu pedir sua ajuda para resolver este problema.


Entrada

A primeira linha da entrada é composta por dois inteiros N e Q, representando, respectivamente, o tamanho do tabuleiro e a quantidade de operações. As próximas Q linhas da entrada vão conter as Q operações. O primeiro inteiro de cada linha vai indicar o tipo da operação. Caso seja 1 ou 2, será seguido por mais dois inteiros X e R. Caso seja 3 ou 4, será seguido por apenas mais um inteiro X.


Saída

Para cada operação do tipo 3 ou 4, seu programa deve produzir uma linha, contendo o valor da resposta correspondente. Se uma linha ou coluna tiver dois ou mais valores que se repetem o mesmo número de vezes, você deve imprimir o maior deles. Por exemplo, se uma linha tem os valores [5,7,7,2,5,2,1,3], tanto o 2, 5 e 7 se repetem duas vezes, então a resposta será 7, pois é o maior deles.

Restrições
• 1 ≤ N, Q ≤ 105
• 1 ≤ X ≤ N
• 0 ≤ R ≤ 50


Exemplo de Entrada Exemplo de Saída

2 4
1 1 1
2 2 2
3 1
3 2

2
2

5 9
3 1
1 1 2
1 3 4
1 4 4
4 2
2 2 5
2 3 5
2 4 5
3 3

0
4
5