TUNA2026 東京Stage Welcome コンテスト 2026/09/23 14:00 ~ 2026/09/23 18:00 4:00:00

P Three Trees

問題
制限時間: 1 sec メモリ制限: 256 MB
Three Trees
Statement

整数 \(M\) に対し,頂点 \(0,1,\ldots,M-1\) からなる木 \(T\) の \(i\) 番目の辺を \(e_i(T)=(u_i(T),v_i(T)) \ (1\le i\le M-1)\) と表します.

また,2つの \(M\) 頂点の木 \(S,T\) と二項演算 \(\circ\) に対し, グラフ \(S\circ T\) を以下のように定義します.

  • 頂点集合は \(\{0,1,\ldots,M-1\}\)
  • 辺集合は \( \{ ( u_i(S)\circ u_i(T), v_i(S)\circ v_i(T) ) \mid 1\le i\le M-1 \} \)

ただし,演算 \(\circ\) は頂点番号に対して行います.また,演算によって得られるすべての辺の端点が \(0\) 以上 \(M-1\) 以下である場合に限り,\(S\circ T\) が定義されるものとします.

整数 \(N\) が与えられます. 頂点 \(0,1,\ldots,N-1\) からなる \(N\) 頂点の木 \(T_1,T_2\) であって, \(T_1|T_2,\ T_1\&T_2,\ T_1\oplus T_2\) がすべて定義され,かつすべて木となるものが存在するか判定し, 存在するならばそのような木\(T_1,T_2\)を1組構築してください.

ここで,\(|,\&,\oplus\) はそれぞれ bitwise OR,bitwise AND,bitwise XOR を表します.

Input

  • 1行目に\(N\)(\(2\leq N \leq 2\times 10^5\))が与えられます.
  • 入力は全て整数であることが保証されています.

Output

問題文の条件を満たす木 \(T_1,T_2\) が存在しないならば,No を出力してください.

存在するならば,\(1\) 行目には Yes を,\(2\) 行目から \(N\) 行目には木 \(T_1\) の辺 \(e_i(T_1)=(u_i(T_1),v_i(T_1))\) を,\(i=1,\ldots,N-1\) の順に各行に \(1\) 本ずつ出力してください.

\(N+1\) 行目から \(2N-1\) 行目には,同様に木 \(T_2\) の辺 \(e_i(T_2)=(u_i(T_2),v_i(T_2))\) を,\(i=1,\ldots,N-1\) の順に各行に \(1\) 本ずつ出力してください.

すべての端点は \(0\) 以上 \(N-1\) 以下でなければなりません.また,演算時には \(T_1\) と \(T_2\) の同じ番号の辺が,出力された端点の順に対応します.

Examples

Input 1
2
Output 1
No
Input 2
5
Output 2
Yes
1 4
1 0
0 3
0 2
2 4
1 4
2 3
0 3

Note

テストケース1:

条件を満たす木が存在しないことが示せます.

テストケース2:

出力例では,\(T_1,T_2\) の同じ番号の辺を対応させることで,各演算後の辺集合はそれぞれ以下のようになります.

  • \(T_1|T_2\): \(\{\{3,4\},\{1,4\},\{2,3\},\{0,3\}\}\)
  • \(T_1\&T_2\): \(\{\{0,4\},\{0,1\},\{0,3\},\{0,2\}\}\)
  • \(T_1\oplus T_2\): \(\{\{0,3\},\{0,4\},\{0,2\},\{0,1\}\}\)

\(T_1,T_2\) と演算後の3つのグラフはすべて木であるため,この出力は条件を満たします. 条件を満たす出力が複数存在する場合,そのうちどれを出力しても構いません.