import sys as O0O0OO00OOOOOO0O0
inf =0x3fffffff
class Sume :
def __init__ (O00OOO000O0O00OO0 ,OOO00OO0OOO0O0O00 ,OOO00000O0OOO0O0O ,OO00O0OOOO0O0OOOO ,O0OO0O000O0O00OOO ):
O00OOO000O0O00OO0 .u =OOO00OO0OOO0O0O00
O00OOO000O0O00OO0 .v =OOO00000O0OOO0O0O
O00OOO000O0O00OO0 .w =OO00O0OOOO0O0OOOO
O00OOO000O0O00OO0 .st =O0OO0O000O0O00OOO
def __lt__ (OOOOO0OO000O0O000 ,OO0O00OOO0OOO0O00 ):
if OOOOO0OO000O0O000 .st ==OO0O00OOO0OOO0O00 .st :
return OOOOO0OO000O0O000 .w <OO0O00OOO0OOO0O00 .w
return OOOOO0OO000O0O000 .st >=OO0O00OOO0OOO0O00 .st
def recurve (OO000O00OOO0O000O ):
if f [OO000O00OOO0O000O ]==OO000O00OOO0O000O :
return OO000O00OOO0O000O
else :
f [OO000O00OOO0O000O ]=recurve (f [OO000O00OOO0O000O ])
return f [OO000O00OOO0O000O ]
def might (OOO0000O0OO0000O0 ,OOOO0OOO00OOO0000 ):
O0000OOOOOOOOO0OO =recurve (OOO0000O0OO0000O0 )
OOOO00O00O0OO0O00 =recurve (OOOO0OOO00OOO0000 )
if O0000OOOOOOOOO0OO ==OOOO00O00O0OO0O00 :
return False
f [O0000OOOOOOOOO0OO ]=OOOO00O00O0OO0O00
return True
def MST (O0O00000O0OO00OOO ,OO00OO00O00O0O00O ,OO000O00OOOOOOOO0 ):
OOOO0O0OOOO0OOO00 =0
O00OOO0O0000OOOOO =0
for O00OOO00O0OO0OOOO in OO00OO00O00O0O00O :
if O00OOO00O0OO0OOOO .u !=OO000O00OOOOOOOO0 and O00OOO00O0OO0OOOO .v !=OO000O00OOOOOOOO0 :
if might (O00OOO00O0OO0OOOO .u ,O00OOO00O0OO0OOOO .v ):
O00OOO0O0000OOOOO +=1
if O00OOO00O0OO0OOOO .st <1 :
OOOO0O0OOOO0OOO00 +=O00OOO00O0OO0OOOO .w
if O00OOO0O0000OOOOO >O0O00000O0OO00OOO -2 :
break
if O00OOO0O0000OOOOO <O0O00000O0OO00OOO -2 :
return inf
return OOOO0O0OOOO0OOO00
def nxln ():
return O0O0OO00OOOOOO0O0 .stdin .readline ()
def main ():
OOOOO000000O0O000 =nxln ()
OOOO0000O000O0OO0 =OOOOO000000O0O000 .split (' ')
O000OO000OOOO0OOO =int (OOOO0000O000O0OO0 [0 ])
O0OO00000000O00O0 =int (OOOO0000O000O0OO0 [1 ])
O0OO0OOOO000OO000 =[0 ]*(O000OO000OOOO0OOO +1 )
OOO000O0O0O00OOOO =[0 ]
for O0OO0OOO0O000O0OO in range (1 ,O000OO000OOOO0OOO +1 ):
OOO000O0O0O00OOOO .append (O0OO0OOO0O000O0OO )
OOO00OOO00OOO0000 =[]
for O0OO0OOO0O000O0OO in range (1 ,O0OO00000000O00O0 +1 ):
OOOOO000000O0O000 =nxln ()
OOOO0000O000O0OO0 =OOOOO000000O0O000 .split (' ')
OO00O00OOOOO0O000 =int (OOOO0000O000O0OO0 [0 ])
OOO000OOO000O0OOO =int (OOOO0000O000O0OO0 [1 ])
OOO000O0OOOO0OOOO =int (OOOO0000O000O0OO0 [2 ])
OOOO00O0OO0OOO000 =int (OOOO0000O000O0OO0 [3 ])
OOO00OOO00OOO0000 .append (Sume (OO00O00OOOOO0O000 ,OOO000OOO000O0OOO ,OOO000O0OOOO0OOOO ,OOOO00O0OO0OOO000 ))
OOO00OOO00OOO0000 .sort ()
OOO0OO00OOOOO0000 =[0 ]
global f
for O0OO0OOO0O000O0OO in range (1 ,O000OO000OOOO0OOO +1 ):
f =list (OOO000O0O0O00OOOO )
O0OO0OOOO000OO000 [O0OO0OOO0O000O0OO ]=MST (O000OO000OOOO0OOO ,OOO00OOO00OOO0000 ,O0OO0OOO0O000O0OO )
if O0OO0OOOO000OO000 [O0OO0OOO0O000O0OO ]>O0OO0OOOO000OO000 [OOO0OO00OOOOO0000 [0 ]]:
OOO0OO00OOOOO0000 .clear ()
OOO0OO00OOOOO0000 .append (O0OO0OOO0O000O0OO )
elif O0OO0OOOO000OO000 [O0OO0OOO0O000O0OO ]==O0OO0OOOO000OO000 [OOO0OO00OOOOO0000 [0 ]]and O0OO0OOOO000OO000 [O0OO0OOO0O000O0OO ]>0 :
OOO0OO00OOOOO0000 .append (O0OO0OOO0O000O0OO )
for O0OO0OOO0O000O0OO in range (0 ,len (OOO0OO00OOOOO0000 )):
print (OOO0OO00OOOOO0000 [O0OO0OOO0O000O0OO ],end =(" "if O0OO0OOO0O000O0OO <len (OOO0OO00OOOOO0000 )-1 else ""))
if __name__ =="__main__":
main ()