1
Python 3, 274 bytes def g(p): q=lambda a:[[i,a]for i in range(len(p)-a)if p[i][:-1]in p[i+a][:-1]or p[i][-1]in p[i+a]] for n in q(1)+q(3): s=sum(n);c=p[:s]+p[s+1:];c[n[0]]=p[s] if[]!=g(c):return p[n[0]]+' <- '+p[s]+','+g(c) return''if len(p)<2else[] print(g(input().split(','))[:-1]or'')...