Início Inscrições Informações Gerais Regulamento Pratique Contato Mapa do Conteúdo

 Você está visitando: Início > Olimpíada Brasileira de Informática > Pratique > Modalidade Programação >
                                            > Nível 1

Armadilhas

Um jogo simples que tem divertido gerações de crianças consiste de um tabuleiro contendo uma trilha de quadrados e um conjunto de peças coloridas. No início do jogo cada jogador recebe uma peça; todas as peças são inicialmente posicionadas imediatamente antes do primeiro quadrado da trilha.

O jogo progride em turnos. A cada turno, jogadores jogam um par de dados, e movem suas peças para a frente. As peças são movidas sempre para a frente, pelo número de quadrados correspondente à soma dos pontos obtidos nos dados. A ordem em que os jogadores jogam os dados é sempre a mesma nos turnos (jogador A, depois jogador B, etc.).

A maioria dos quadrados da trilha no tabuleiro são 'normais', mas alguns são 'armadilhas'. Se a peça de um jogador cai em uma armadilha ao final do movimento de um jogador, o jogador perde a vez de jogar no próximo turno. Ou seja, ele/ela não joga os dados e sua peça fica um turno sem ser movimentada.

Há exatamente três armadilhas na trilha do tabuleiro.

O vencedor do jogo é o jogador cuja peça alcance o final da trilha primeiro. O final da trilha é após o último quadrado da trilha. Considere, por exemplo, o tabuleiro da figura acima, cujos quadrados são numerados de 1 a 48. No início do jogo, as peças estão posicionadas no local marcado 'Início' na fugura, ou seja, antes do quadrado número 1. Portanto, se um jogador obtém um resultado 7 nos dados (dados marcando 2 e 5, por exemplo), sua peça é posicionada no quadrado número 7 ao final do primeiro turno do jogo. Além do mais, se a peça de um jogador está posicionada no quadrado 41, o jogador necessita de um resultado pelo menos igual a 8 nos dados para alcançar o final da trilha e vencer o jogo. Note ainda que não há empates no jogo.

Tarefa

São fornecidos o número de jogadores, o número de quadrados na trilha, a posição das armadilhas e uma lista de resultados de dados. Você deve escrever um programa que determine o vencedor do jogo.

Entrada

Seu programa deve processar vários conjuntos de teste. A primeira linha de um conjunto de teste contém dois inteiros J e Q representando respectivamente o número de jogadores e o número de quadrados na trilha (1 ≤ J ≤ 10 e 3 ≤ Q ≤ 10000). A segunda linha de um conjunto de teste descreve as armadilhas, representadas por três inteiros distintos T1, T2 e T3, denotando as suas posições na trilha (1 ≤ T1, T2, T3 ≤ Q). A seguir é fornecido o conjunto de resultados dos dados. Cada resultado é descrito em uma linha separada, cada linha contendo inteiros D1 e D2 (1 ≤ D1, D2 ≤ 6), que representam os resultados dos dados. O número de resultados dos dados em um conjunto de teste será sempre o número exato necessário para que um jogador vença o jogo. O final da entrada é indicado por J = Q = 0.

Um jogador é identificado por um número de 1 a J. Jogadores jogam em ordem sequencial, de 1 a J.

A entrada deve ser lida da entrada padrão.

Exemplo de Entrada

2 10
2 4 8
1 1
3 4
1 2
6 5
3 7
4 5 7
1 2
2 2
2 1
1 1
1 2
1 1
1 1
0 0

Saída

Para cada conjunto de teste da entrada seu programa deve produzir três linhas. A primeira linha identifica o conjunto de teste, no formato "Teste n", onde n é numerado a partir de 1. A segunda linha deve conter um único inteiro, identificando o vencedor. A terceira linha deve ser deixada em branco. A grafia mostrada no Exemplo de Saída, abaixo, deve ser seguida rigorosamente.

Exemplo de Saída

Teste 1
1

Teste 2
3

(esta saída corresponde ao exemplo de entrada acima)

Restrições

1 ≤ J ≤ 10 (J = 0 apenas para indicar o fim da entrada)
0 ≤ Q ≤ 10000 (Q = 0 apenas para indicar o fim da entrada)

Apoio: Unicamp Patrocínio: Fundação Carlos Chagas Promoção: SBC