//所有算法都與數據結構的實現細節分開，並由迭代器參數化
#include <algorithm>
#define 填(下, 上, 值) fill(下, 上, 值)
#define 找(下, 上, 值) find(下, 上, 値)
#define 各(配列) for_each(全(配列), [](整 值) { 出(值) << " "; })
#define 以上(下, 上, 基準) lower_bound(下, 上, 基準)
#define 最大(下, 上) max_element(下, 上)
#define 拼(一下, 一上, 二下, 二上) merge(一下, 一上, 二下, 二上, back_inserter(果))
#define 最小(下, 上) min_element(下, 上)
#define 逆(下, 上) reverse(下, 上)
#define 理(下, 上) sort(下, 上)
#define 逆理(下, 上) sort(下, 上, greater<整>())
#define 獨(下, 上) unique(下, 上)
#define 比大(下, 上, 基準) upper_bound(下, 上, 基準)

//數學,標題提供常見的數學函數和各種宏
#include <cmath>
#define 距離(數) abs(數)
#define 切下(數) floor(數)
#define 切上(數) ceil(數)
#define 根(數) sqrt(數)
#define 單縱(角度) sin(角度)
#define 單橫(角度) cos(角度)

//標準輸入輸出
#include <iostream>
#define 入(值) cin >> 值
#define 出(值) cout << 值

//迭代器
#include <iterator>
#define 始(迭代器) (迭代器).begin()
#define 終(迭代器) (迭代器).end()

//地圖,獨特的元件的一種關聯容器的存儲該密鑰與其相對應的值造
#include <map>
#define 計(值) count(值);

//隊列,關於先進先出隊的列類和具有優先級隊列的類
#include <queue>
#define 行(隊列) 隊列.pop()
#define 推(隊列, 值) 隊列.push(值)
#define 面(隊列) 隊列.front()

//堆,關於後進先出容器適配器
#include <stack>
#define 上(容器) 容器.top()

//集,表示一組關聯容器,二叉樹
#include <set>
//#define 找(集, 值) 集.find(值)

//字符串相關的類，函數和字符特徵
#include <string>
#define 長(字符) 字符.length()
#define 部字(字符, 始, 長) 字符.substr(始, 長)

//効用,標題定義了庫中其餘部分使用的許多基本函數和類模板
#include <utility>
#define 組(一, 二) make_pair(一, 二)
#define 換(一, 二) swap(一, 二)

//向量,一個可變長度數組
#include <vector>
#define 去(向量) (向量).clear()
#define 空(向量) 向量.empty()
#define 除(向量, 值) 向量.erase(值)
#define 插(向量, 值) 向量.insert(值)
#define 添(向量, 值) 向量.push_back(值)
#define 變長(向量, 長) 向量.resize(長)

//論理
#define 如(條件) if (條件)
#define 如他(條件) else if (條件)
#define 他 else

//循環
#define 再(變數, 下, 上) for (整 變數 代 下; 變數 <= 上; 變數 代 變數 + 1)
#define 逆再(變數, 下, 上) for (整 變數 代 上; 變數 >= 下; 變數 代 變數 - 1)
#define 在(條件) while (條件)
#define 斷 break
#define 次 continue

//基本
#define 心() main()
#define 返 return

//演算子
#define 代 =
#define 是 ==
#define 又 ||

#define 構 struct
#define 定 const
#define 真 true
#define 偽 false
#define 空行 endl

//標準下
using namespace std;

//中文型繁
typedef int 整數;
typedef void 無;
typedef long long 整;
typedef vector<整> 整向;
typedef vector<整向> 整向向;
typedef vector<整向向> 整向向向;
typedef double 小;
typedef vector<小> 小向;
typedef vector<小向> 小向向;
typedef char 字;
typedef vector<字> 字向;
typedef vector<字向> 字向向;
typedef string 字符;
typedef vector<字符> 字符向;
typedef pair<整, 整> 整對;
typedef vector<整對> 整對向;
typedef pair<小, 小> 小對;
typedef vector<小對> 小對向;
typedef vector<小對向> 小對向向;
typedef pair<整, 小> 整小對;
typedef vector<整小對> 整小對向;
typedef bool 旗;
typedef vector<旗> 旗向;
typedef vector<旗向> 旗向向;
typedef stack<整> 整堆;
typedef queue<整> 整隊;
typedef queue<整對> 整對隊;
typedef priority_queue<整> 優隊;
typedef set<整> 整又;
typedef map<整, 整> 整組;
typedef map<整, 字符> 字組;

構 邊 { 整 對, 費; };
typedef vector<邊> 圖;

整 大值(整 一, 整 二) { 返 max(一, 二); }
整 小值(整 一, 整 二) { 返 min(一, 二); }

//定 整 無限 = (2e9) + 10;
//定 整 法 = 1000000007;
//定 小 境界 = 1e-9;
//定 小 半円 = acos(-1.0);
//定 整 百 = 100;
//定 整 千 = 1000;
定 整 萬 = 10000;
//定 整 億 = 100000000;
//定 整 四方横[5] = {0,1,0,-1,0};
//定 整 四方縦[5] = {0,0,1,0,-1};
定 整 最所 代 10 * 萬 + 1;
整 所;
整向 時(最所), 橫(最所), 縱(最所);

無 入力關數()
{
    入(所);
    時[0] 代 橫[0] 代 縱[0] 代 0;
    再(數, 1, 所)
    {
        入(時[數]) >> 橫[數] >> 縱[數];
    }
}

旗 可()
{
    再(數, 0, 所 - 1)
    {
        整 時限 代 時[數 + 1] - 時[數];
        整 距 = 距離(橫[數 + 1] - 橫[數]) + 距離(縱[數 + 1] - 縱[數]);
        如(時限 < 距 又 距 % 2 != 時限 % 2)
        返 偽;
    }
    返 真;
}

整數 心()
{
    入力關數();
    可() ? 出("Yes") << 空行 : 出("No") << 空行;
    返 0;
}

Measured memory_bytes: 2560