n, m = map(int, input().split()) blocks = [ tuple(map(int, input().split())) for _ in range(n)] blocks = sorted(blocks, key=lambda x: x[1]) pink_block = [True for _ in range(m)] def update(l, r): if all(pink_block[l:r+1]): pink_block[l:r+1] = [False]*(r-l+1) return True return False for l, r in blocks: if not update(l, r): l, r = m - r - 1, m - l - 1 if not update(l, r): print('NO'); exit() print('YES')