from datetime import datetime , timedelta
for i in range ( int ( input ( ) ) ) :
# ENTRADA DE DATOS
datos = input ( ) .split ( ',' )
# VARIABLES AUXILIARES
nombre = datos[ 0 ]
asesinatos = int ( datos[ 1 ] )
f = [ ] # Fechas
serialP = True
# PROCESAMIENTO DE DATOS
for j in range ( asesinatos) :
f.append ( input ( ) .split ( '-' ) )
dia_1 = int ( f[ 0 ] [ 2 ] ) # Fecha de primer asesinato (día)
# Verificamos si siempre ataca en la misma fecha (día)
contador = 0
for fecha in f:
if int ( fecha[ 2 ] ) == dia_1:
contador += 1
if contador == asesinatos:
serialP = False
# ¿Qué pasa si ataca los últimos días de febrero y hay un año bisiesto?
# Verificamos si siempre ataca los últimos días de febrero
contador = 0 # Reiniciamos el contador
for fecha in f:
if ( fecha[ 1 ] == "02" ) and ( fecha[ 2 ] == "28" or fecha[ 2 ] == "29" ) :
contador += 1
if contador == asesinatos:
serialP = False
# Si no ataca en la misma fecha:
frecuencia = ( datetime ( int ( f[ 1 ] [ 0 ] ) , int ( f[ 1 ] [ 1 ] ) , int ( f[ 1 ] [ 2 ] ) ) - datetime ( int ( f[ 0 ] [ 0 ] ) , int ( f[ 0 ] [ 1 ] ) , int ( f[ 0 ] [ 2 ] ) ) ) .days
aux = len ( f) - 1
ultimo_asesinato = datetime ( int ( f[ aux] [ 0 ] ) , int ( f[ aux] [ 1 ] ) , int ( f[ aux] [ 2 ] ) )
proximo_asesinato = ultimo_asesinato + timedelta( days = frecuencia)
if serialP == False :
print ( nombre, "no es asesino(a) serial periodico" )
print ( )
else :
print ( nombre, "ataca cada" , frecuencia, "dias y volvera a hacerlo en" , proximo_asesinato.date ( ) )
print ( )
ZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUsIHRpbWVkZWx0YQoKZm9yIGkgaW4gcmFuZ2UoaW50KGlucHV0KCkpKToKICAgICMgRU5UUkFEQSBERSBEQVRPUwogICAgZGF0b3MgPSBpbnB1dCgpLnNwbGl0KCcsJykgIAoKICAgICMgVkFSSUFCTEVTIEFVWElMSUFSRVMKICAgIG5vbWJyZSA9IGRhdG9zWzBdCiAgICBhc2VzaW5hdG9zID0gaW50KGRhdG9zWzFdKQogICAgZiA9IFtdICAjIEZlY2hhcwogICAgc2VyaWFsUCA9IFRydWUKCiAgICAjIFBST0NFU0FNSUVOVE8gREUgREFUT1MKICAgIGZvciBqIGluIHJhbmdlKGFzZXNpbmF0b3MpOgogICAgICAgIGYuYXBwZW5kKGlucHV0KCkuc3BsaXQoJy0nKSkKCiAgICBkaWFfMSA9IGludChmWzBdWzJdKSAgIyBGZWNoYSBkZSBwcmltZXIgYXNlc2luYXRvIChkw61hKQogICAgIyBWZXJpZmljYW1vcyBzaSBzaWVtcHJlIGF0YWNhIGVuIGxhIG1pc21hIGZlY2hhIChkw61hKQogICAgY29udGFkb3IgPSAwCiAgICBmb3IgZmVjaGEgaW4gZjoKICAgICAgICBpZiBpbnQoZmVjaGFbMl0pID09IGRpYV8xOgogICAgICAgICAgICBjb250YWRvciArPSAxCiAgICBpZiBjb250YWRvciA9PSBhc2VzaW5hdG9zOgogICAgICAgIHNlcmlhbFAgPSBGYWxzZQoKICAgICMgwr9RdcOpIHBhc2Egc2kgYXRhY2EgbG9zIMO6bHRpbW9zIGTDrWFzIGRlIGZlYnJlcm8geSBoYXkgdW4gYcOxbyBiaXNpZXN0bz8KICAgICMgVmVyaWZpY2Ftb3Mgc2kgc2llbXByZSBhdGFjYSBsb3Mgw7psdGltb3MgZMOtYXMgZGUgZmVicmVybwogICAgY29udGFkb3IgPSAwICAjIFJlaW5pY2lhbW9zIGVsIGNvbnRhZG9yCiAgICBmb3IgZmVjaGEgaW4gZjoKICAgICAgICBpZiAgKGZlY2hhWzFdID09ICIwMiIpIGFuZCAoZmVjaGFbMl0gPT0gIjI4IiBvciBmZWNoYVsyXSA9PSAiMjkiKToKICAgICAgICAgICAgY29udGFkb3IgKz0gMQogICAgaWYgY29udGFkb3IgPT0gYXNlc2luYXRvczoKICAgICAgICBzZXJpYWxQID0gRmFsc2UKICAgIAogICAgIyBTaSBubyBhdGFjYSBlbiBsYSBtaXNtYSBmZWNoYToKICAgIGZyZWN1ZW5jaWEgPSAoZGF0ZXRpbWUoaW50KGZbMV1bMF0pLCBpbnQoZlsxXVsxXSksIGludChmWzFdWzJdKSkgLSBkYXRldGltZShpbnQoZlswXVswXSksIGludChmWzBdWzFdKSwgaW50KGZbMF1bMl0pKSkuZGF5cwoKICAgIGF1eCA9IGxlbihmKSAtIDEKICAgIHVsdGltb19hc2VzaW5hdG8gPSBkYXRldGltZShpbnQoZlthdXhdWzBdKSwgaW50KGZbYXV4XVsxXSksIGludChmW2F1eF1bMl0pKQoKICAgIHByb3hpbW9fYXNlc2luYXRvID0gdWx0aW1vX2FzZXNpbmF0byArIHRpbWVkZWx0YShkYXlzID0gZnJlY3VlbmNpYSkKCiAgICBpZiBzZXJpYWxQID09IEZhbHNlOgogICAgICAgIHByaW50KG5vbWJyZSwgIm5vIGVzIGFzZXNpbm8oYSkgc2VyaWFsIHBlcmlvZGljbyIpCiAgICAgICAgcHJpbnQoKQogICAgZWxzZToKICAgICAgICBwcmludChub21icmUsICJhdGFjYSBjYWRhIiwgZnJlY3VlbmNpYSwgImRpYXMgeSB2b2x2ZXJhIGEgaGFjZXJsbyBlbiIsIHByb3hpbW9fYXNlc2luYXRvLmRhdGUoKSkKICAgICAgICBwcmludCgp
stdin
NgplbCBjb21lZGlhbnRlLCAzCjIwMDAtMDEtMDEKMjAwMC0wMS0xNQoyMDAwLTAxLTI5CmxhIGFtYW50ZSBkZSBnYXRvcywgNAoxOTk4LTEyLTEyCjE5OTktMTItMTIKMjAwMC0xMi0xMgoyMDAxLTEyLTEyCmVsIGFzZXNpbm8gZGUgbGEgY2FsbGUgOSwgNQoyMDA5LTA5LTA5CjIwMTItMDYtMDQKMjAxNS0wMi0yOAoyMDE3LTExLTIzCjIwMjAtMDgtMTgKZWwgZXN0cmFuZ3VsYWRvciBkZSBsYSBwZWx1Y2EgZGUgcGF5YXpvLCA0CjIwMDUtMDctMTAKMjAwNS0wOC0xMAoyMDA1LTA5LTEwCjIwMDUtMTAtMTAKZGF2aWQsIDQKMjAwNC0wMi0yOQoyMDA0LTAzLTI5CjIwMDQtMDQtMjcKMjAwNC0wNS0yNgphbmRyZXMsIDQKMjAwMy0wMi0yOAoyMDA0LTAyLTI5CjIwMDUtMDItMjgKMjAwNi0wMi0yOA==
6
el comediante, 3
2000-01-01
2000-01-15
2000-01-29
la amante de gatos, 4
1998-12-12
1999-12-12
2000-12-12
2001-12-12
el asesino de la calle 9, 5
2009-09-09
2012-06-04
2015-02-28
2017-11-23
2020-08-18
el estrangulador de la peluca de payazo, 4
2005-07-10
2005-08-10
2005-09-10
2005-10-10
david, 4
2004-02-29
2004-03-29
2004-04-27
2004-05-26
andres, 4
2003-02-28
2004-02-29
2005-02-28
2006-02-28