def covered?(ranges, max)
    a = ranges.sort
    return false if a[0][0] > 0
    l0, r0 = a.shift
    until a.empty?
        l, r = a.shift
        return false if r0 < l
        r0 = r if r > r0
    end
    return true
end

n, w, h = gets.split.map &:to_i
x_ranges = []
y_ranges = []

n.times {
    x, y, r = gets.split.map &:to_i
    x_ranges << [x-r, x+r]
    y_ranges << [y-r, y+r]
}

if covered?(x_ranges, w) || covered?(y_ranges, h)
    puts 'Yes'
else
    puts 'No'
end