n, m = map(int, input().split()) blocks = [tuple(map(int, input().split())) for _ in range(n)] blocks[:] = [(l, r) if l < m // 2 else (m - r - 1, m - l - 1) for l, r in blocks] blocks = sorted(blocks, key=lambda x: (x[0], x[1])) pink_block = [True]*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')