m.times{
  now = q.shift
  lrd[now].each{|(l,r,d)|
    if  hipos[l] && hipos[r]
      #どちらもあるので正しいかみる
      if hipos[l]+d != hipos[r]
        puts 'No'
        exit
      end
    elsif hipos[l]
      #rがないのでいれる
      hipos[r] = hipos[l]+d
    elsif hipos[r]
      #lがないのでいれる
      hipos[l] = hipos[r]-d
    else
      #どちらもないのでいれる
      hipos[l] = 0
      hipos[r] = d
    end
    
    if !ch[r]
      q<<r
      ch[r] = true
    end
  }
}

max = 0
min = 10**9
n.times{|i|
  w = hipos[i+1]
  next if !w
  max = w if max < w
  min = w if min > w
}

if max-min <= (10**9)
  puts 'Yes'
else
  puts 'No'
end