[F] Longitud de corte


Enlace a Codeforces

tiempo límite por test 0.5 segundos
memoria límite por test 256 MB
entrada entrada estándar
salida salida estándar


Te dan un n-góno(un polígono de n lados) simple (sin intersecciones entre sus lados adyacentes) no necesariamente convexo. También te dan mm rectas. Para cada recta debes encontrar la longitud entre los puntos más lejanos que tienen en común la recta y el n-góno.

Los bordes del n-góno pertenecen al polígono. Y se puede dar que el n-góno contenga ángulos de 180 grados.

Entrada

La primera línea contiene dos enteros nn y mm (3n10003 \leq n \leq 1000; 1m1001 \leq m \leq 100). Las siguientes nn líneas contienen las coordenadas de los vértices del polígono (en dirección de reloj o contrarreloj). Todos los vértices son distintos.

Las siguiente mm líneas contienen descripciones de las rectas. Cada una contiene las coordenadas de dos puntos distintos de la recta.

Todas las coordenadas dadas son números reales, con a lo más dos dígitos decimales. Además, sus valores absolutos no exceden a 10510^5.

Salida

Imprime mm líneas, cada i-ésima línea debería tener la longitud entre los puntos más lejanos que tienen en común el n-góno y la i-ésima recta. La respuesta se considera correcta si el margen de error absoluto o relativo no excede a 10610^{-6}.

Ejemplos

input:
4 3
0 0
1 0
1 1
0 1
0 0 1 1
0 0 0 1
0 0 1 -1

output:
1.41421356237309514547
1.00000000000000000000
0.00000000000000000000