Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

TV7CN - TV da Vovó

Autor: Raphael Ribas

A TV da vovó Filomena é muito antiga e sua imagem fica desajustada com muita frequência. No passado ela pediu a sua ajuda para escrever um programa que ajudasse ela a ajustar a imagem da TV. No entanto o programa não ajudava muito porque a vovó Filomena achou a interface de linha de comando muito mais difícil do que ajustar a imagem por ela mesma.

Por fim, vovó Filomena resolveu comprar uma TV nova. Ela escolheu uma TV super avançada com imagens em 3D. No entanto, a nova TV possui novas formas de desajustar a imagem das quais a TV antiga não era capaz, incluindo rotações nas 3 dimensões. Desiludida, ela pediu mais uma vez a sua ajuda para fazer um programa que auxiliasse ela a ajustar a imagem da TV. Felizmente, a vovó Filomena odiou usar os óculos 3D, e estão guardados na gaveta desde a compra da TV. Então você só precisa se preocupar com ajustes em 2 dimensões.

A imagem da TV é representada por N linhas. Cada linha possui N números. Cada número representa a cor da imagem da TV naquela linha e coluna. Os ajustes que a TV pode fazer são:

  • Rotação de 90o no sentido horário ou anti-horário,
  • Translação em qualquer uma das quatro direções, e
  • Espelho vertical ou horizontal.

Sua tarefa é escrever um programa que, dado a imagem da TV e uma sequência de ajustes, determine a imagem final.

Entrada

A entrada é composta por diversas instâncias. A primeira linha de cada instância contém dois inteiro, N e K. As N linhas seguintes contém N números cada. Esses números constituem a imagem inicial da TV. As próximas K linhas contém, cada uma, uma operação a ser realizada na imagem da TV, que podem ser:

  • rot 90 - Rotação de 90o no sentido horário,
  • rot -90 - Rotação de 90o no sentido anti-horário,
  • move direita - Translação de 1 coluna para a direita,
  • move esquerda - Translação de 1 coluna para a direita,
  • move cima - Translação de 1 linha para cima,
  • move baixo - Translação de 1 linha para baixo,
  • espelho vertical - Espelho sobre o eixo vertical,
  • espelho horizontal - Espelho sobre o eixo horizontal,

Saída

Para cada instância, imprima N linhas, cada uma com N números, com a imagem final da TV, seguido por uma linha em branco.

Restrições

  • 1 ≤ N ≤ 1.000
  • 1 ≤ K ≤ 1.000.000

Exemplos

Entrada:
3 1
1 2 3
4 5 6
7 8 9
rot 90
3 1
1 2 3
4 5 6
7 8 9
move direita
3 1
1 2 3
4 5 6
7 8 9
espelho vertical
3 7
1 2 3
4 5 6
7 8 9
rot 90
move direita
rot -90
move cima
espelho vertical
move cima
espelho horizontal
Saída:
7 4 1
8 5 2
9 6 3

3 1 2
6 4 5
9 7 8

3 2 1
6 5 4
9 8 7

9 8 7
6 5 4
3 2 1

 


Adicionado por:Bruno Ribas
Data:2014-02-03
Tempo limite:0.610s
Tamanho do fonte:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Linguagem permitida:Todas exceto: ASM64 CLOJURE ERL FSHARP PERL6 PY_NBC SCALA TCL
Origem:7o Contest Noturno

© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.