AT_agc039_b [AGC039B] Graph Partition

Description

[problemUrl]: https://atcoder.jp/contests/agc039/tasks/agc039_b $ N $ 頂点 $ M $ 辺の連結無向グラフが与えられます。頂点には $ 1 $ から $ N $ までの番号がついています。 辺の情報はマス目 $ S $ を用いて表され、$ S_{i,j} $ が `1` のとき頂点 $ i,j $ を結ぶ辺が存在し、そうでないとき存在しないことを表します。 頂点全体を空でない集合 $ V_1,\dots,V_k $ に分解し、以下を満たすようにすることが可能か判定してください。 可能な場合、集合の個数 $ k $ の最大値を求めてください。 - どの辺も、番号が隣り合う頂点集合の頂点どうしを結ぶ。より正確には、どの辺 $ (i,j) $ に対しても、ある $ 1\leq\ t\leq\ k-1 $ が存在し、$ i\in\ V_t,j\in\ V_{t+1} $ または $ i\in\ V_{t+1},j\in\ V_t $ のいずれかを満たす。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ S_{1,1}...S_{1,N} $ $ : $ $ S_{N,1}...S_{N,N} $

Output Format

条件を満たす分割が不可能な場合、$ -1 $ を出力せよ。 そうでない場合、集合の個数 $ k $ の最大値を出力せよ。

Explanation/Hint

### 制約 - $ 2\ \leq\ N\ \leq\ 200 $ - $ S_{i,j} $ は `0` または `1` である - $ S_{i,i} $ は `0` である - $ S_{i,j}=S_{j,i} $ - 与えられるグラフは連結 - $ N $ は整数である ### Sample Explanation 1 頂点 $ 1,2 $ をそれぞれ $ V_1,V_2 $ に含めればよいです。