Who owes who money?
Python 3, 173 bytes
a=lambda:input().split()
m={x:int(y)for x,y in zip(a(),a())}
l=lambda k:m[k]
while any(map(l,m)):d=min(m,key=l);s=max(m,key=l);t=min(m[s],-m[d]);m[d]+=t;m[s]-=t;print(d,s,t)
Try it online!
-6 bytes thanks to ppperry using dictcomps instead of dict
of a listcomp