Viagem

Você está viajando pelo arquipélago de Kiri, que é composto por um grande número de ilhas. Não há pontes entre as ilhas, de modo que a única maneira de viajar entre as ilhas é por navio.

Há várias rotas de navios disponíveis. Cada rota conecta duas ilhas distintas AA e BB e pode ser usada nas duas direções (de AA para BB ou de BB para AA). Cada rota tem um certo tempo de percurso (o mesmo nas duas direções) e um custo (o mesmo nas duas direções).

No momento você quer ir da ilha XX para outra ilha YY, mas quer gastar no máximo um certo valor com a viagem. Você também está com pressa e gostaria de chegar o mais rapidamente possível ao seu destino.

Dados a lista das rotas disponíveis, com seus custos e tempos de percurso, escreva um programa para determinar se é possível chegar ao destino gastando no máximo o valor previsto para a viagem, e nesse caso qual o menor tempo para chegar ao destino. Note que pode não ser possível chegar ao destino, seja porque não há rota disponível ou porque o valor alocado para a viagem não é suficiente.

Por exemplo, considere o caso mostrado na figura abaixo, em que você está na ilha 1 e quer ir para a ilha 4:

  1. Se o valor previsto é 10, a resposta é 5 e o caminho ótimo é 1241 \rightarrow 2 \rightarrow 4. Note que este caminho custa 4+6=104 + 6 = 10 e demora tempo 4+1=54 + 1 = 5.
  2. Se o valor previsto é 7, a resposta é 7 e o caminho ótimo é 12341 \rightarrow 2 \rightarrow 3 \rightarrow 4, que custa 4+2+1=74 + 2 + 1 = 7 e demora tempo 4+2+1=74 + 2 + 1 = 7.
  3. Se o valor previsto é 3, a resposta é 8 e o caminho ótimo é 1>3>41 -> 3 -> 4, usando a aresta entre 1 e 3 que demora tempo 7 e tem custo 2. Note que este caminho custa 2+1=32 + 1 = 3 e demora tempo 7+1=87 + 1 = 8.
  4. Se o valor previsto é 2, a resposta é 9 e o caminho ótimo é 1>3>41 -> 3 -> 4, usando a aresta entre 1 e 3 que demora tempo 8 e tem custo 1, note que este caminho custa 1+1=21 + 1 = 2 e demora tempo 8+1=98 + 1 = 9.
  5. Se o valor previsto é 1, não existe caminho que satisfaça as restrições, por isso a resposta é 1-1.

Entrada

A primeira linha da entrada contém três inteiros VV, NN e MM, respectivamente o valor disponível para a viagem, o número de ilhas e o número de rotas. As ilhas são identificadas por inteiros de 1 a NN. Cada uma das MM linhas seguintes descreve uma rota e contém quatro inteiros AiA_i, BiB_i, TiT_i e PiP_i, onde AiA_i e BiB_i representam ilhas, TiT_i o tempo de percurso e PiP_i o custo de uma passagem para essa rota. A última linha da entrada contém dois inteiros XX e YY, o início e o destino da sua viagem.

Saída

Seu programa deve produzir uma única linha na saída, que deve conter um único inteiro, o menor tempo necessário para chegar ao destino, ou o valor 1-1 caso não seja possível chegar ao destino.

Restrições

Informações sobre a pontuação

Exemplo de entrada 1

10 4 7
1 2 4 4
1 3 7 2
3 1 8 1
3 2 2 2
4 2 1 6
3 4 1 1
1 4 6 12
1 4

Exemplo de saída 1

5

Exemplo de entrada 2

3 3 3
1 2 5 2
3 2 8 2
1 3 1 4
1 3

Exemplo de saída 2

-1