AT_asaporo_a 魔法使い高橋君
Description
[problemUrl]: https://atcoder.jp/contests/cf16-tournament-round2-open/tasks/asaporo_a
高橋君は魔法使いです。高橋君は魔法をかけることで、$ M $ 項からなる数列 $ (a_1,a_2,...,a_M) $ を、$ s_i $ を $ a_1~a_i $ の和とした数列 $ (s_1,s_2,...,s_M) $ に変えることができます。
ある日、高橋君は $ M $ 項からなる数列を $ N $ 個もらい、順番に $ A_1,A_2,...,A_N $ と名付けました。さらに、高橋君は魔法をかけることで、辞書順で比較した際に $ A_1\
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $ $ A_{(1,1)} $ $ A_{(1,2)} $ $ ... $ $ A_{(1,M)} $ $ A_{(2,1)} $ $ A_{(2,2)} $ $ ... $ $ A_{(2,M)} $ $ : $ $ A_{(N,1)} $ $ A_{(N,2)} $ $ ... $ $ A_{(N,M)} $
Output Format
高橋君がかける魔法の最小回数を出力せよ。ただし、高橋君が目標を達成できないならば、代わりに `-1` を出力せよ。
Explanation/Hint
### 制約
- $ 1\ ≦\ N\ ≦\ 10^3 $
- $ 1\ ≦\ M\ ≦\ 10^3 $
- $ A_i $ の $ j $ 項目を $ A_{(i,j)} $ としたとき、 $ 1\ ≦\ A_{(i,j)}\ ≦\ 10^9 $
### 部分点
- $ 200 $ 点分のテストケースでは、$ 10^4 $ 回以下の回数で目標を達成し、かつ、どの項も $ 10^9 $ 以下となるようにすることができる。
- 別の $ 800 $ 点分のテストケースでは、$ A_{(i,j)}\ ≦\ 80 $ が成立する。
### Sample Explanation 1
$ A_2 $ に対して $ 1 $ 回魔法をかけることで、$ A_2\ =\ (2\ ,\ 3\ ,\ 5) $ となり、高橋君は目標を達成できます。
### Sample Explanation 2
この場合、何回魔法をかけても高橋君は目標を達成できません。