AT_abc140_f [ABC140F] Many Slimes

Description

[problemUrl]: https://atcoder.jp/contests/abc140/tasks/abc140_f $ 1 $ 匹のスライムがいます。 あなたはこのスライムの「体力」を自由な整数の値に設定できます。 スライムは $ 1 $ 秒ごとに、自分より真に小さい整数の体力をもつスライムを $ 1 $ 匹生成することで増殖していきます。生成されるスライムの体力は、スライムごとに毎回自由に決めることができます。最初の増殖はこれから $ 1 $ 秒後に起こります。 最初のスライム、および生成されるスライムの体力を適切に定めることで、これから $ N $ 秒後に存在する $ 2^N $ 匹のスライムの体力の集合を集合 $ S $ に一致させることができるか判定してください。 ここで $ S $ は $ 2^N $ 要素からなる重複を認める整数の集合で、その要素は $ S_1,~S_2,~...,~S_{2^N} $ です。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ S_1 $ $ S_2 $ $ ... $ $ S_{2^N} $

Output Format

最初のスライム、および生成されるスライムの体力を適切に定めることで、$ N $ 秒後に存在する $ 2^N $ 匹のスライムの体力の集合を集合 $ S $ に一致させることができるなら `Yes` を、できないなら `No` を出力せよ。

Explanation/Hint

### 制約 - 入力は全て整数である。 - $ 1\ \leq\ N\ \leq\ 18 $ - $ 1\ \leq\ S_i\ \leq\ 10^9 $ ### Sample Explanation 1 $ 2 $ 秒後に存在するスライムの体力の集合を $ S $ に一致させる一例を示します。 まず最初のスライムの体力を $ 4 $ に設定します。 最初のスライムに体力が $ 3 $ のスライムを生成させることで、$ 1 $ 秒後に存在するスライムの体力を $ 4,~3 $ とできます。 そして最初のスライムに体力が $ 2 $ の、$ 2 $ 匹目のスライムに体力が $ 1 $ のスライムを生成させることで、$ 2 $ 秒後に存在するスライムの体力を $ 4,~3,~2,~1 $ とできます。これは集合として $ S $ に一致しています。 ### Sample Explanation 2 $ S $ は同じ整数を複数含むこともあります。