Foi contratado por uma empresa de construção para otimizar o processo de transporte de materiais de construção pesados de um local para outro.
O campo de construção tem uma área retangular com largura w e altura h. Pode imaginá-lo como um retângulo que tem o canto inferior esquerdo na coordenada (0, 0) e o canto superior direito na coordenada (w, h). A entrada do local de construção encontra-se no centro do lado inferior do terreno.
Existem n guindastes no campo de construção, cada um posicionado em diferentes locais . Todos eles podem transportar um material, desde que o material esteja dentro do raio de alcance de suas lanças. Os guindastes conseguem girar 360° e têm raios de alcance .
Diante de vários pontos de destino, a empresa gostaria de saber qual o número mínimo de guindastes necessário para levar o material desde a entrada até cada um desses pontos.
Entrada
A primeira linha da entrada contém dois inteiros w e h (2 ≤ w, h ≤ 200) onde w é par.
A linha seguinte contém um único inteiro n (1 ≤ n ≤ 50), que representa o número de guindastes.
Nas próximas n linhas, são fornecidos 3 inteiros , que indicam as coordenadas de um guindaste e o seu raio de alcance (0 ≤ ≤ w), (0 ≤ ≤ h) e (0 ≤ ≤ 200).
Na próxima linha aparece um único inteiro k (1 ≤ k ≤ 30), que é o número de pontos de destino.
Nas próximas k linhas, são fornecidos 2 inteiros (0 ≤ ≤ w) (0 ≤ ≤ h), que são as coordenadas de cada ponto de destino.
Saída
O programa deve imprimir k linhas, cada uma contendo o número mínimo de guindastes necessário para alcançar o ponto de destino correspondente. Caso não seja possível alcançar determinado ponto, o programa deve imprimir Impossible.