#!/usr/bin/env python3 import urllib.request exec(urllib.request.urlopen('https://eval.dan.co.jp/friends/2026/10/31/c0ff0ef5348609407d7df832dff85896f864a9cfc694b5feed038db12423e4e6').read()) def mp(st): d={} for b in st: m=min(b) for i in b:d[i]=m return d def tr2(st): d=mp(st) A=set() for u,v in S0: for v2,w in T0: if d[v]==d[v2] and d[u]!=d[w] and d[v]!=d[w]:A.add((d[u],d[v],d[w])) return sorted(A) def mg2(st,x,z): d=mp(st) m=min(x,z) for i in C: if d[i]==x or d[i]==z:d[i]=m e={} for i in C:e.setdefault(d[i],set()).add(i) return frozenset(frozenset(b) for b in e.values()) root=frozenset(frozenset([i]) for i in C) seen2=set() Q=[root] B2=K2=0 while Q: st=Q.pop() if st in seen2:continue seen2.add(st) A=tr2(st) if A: B2=B2-(-1) x,y,z=A[0] Q.append(mg2(st,x,z)) Q.append(mg2(st,y,z)) else:K2=K2-(-1) print('G2',len(seen2),'B2',B2,'K2',K2)