No.37 クリスマスパーティー (Christmas Party)


時間制限:$2.0sec$ / メモリ制限:$256MB$

問題文

JOI 君は友達 1 から友達 N までの N 人の友達を招いてクリスマスパーティーを行った.クリスマスパーティーも盛り上がってきたところで,友達と一緒に次のようなゲームを行うことになった.

  1. 最初に JOI 君は N 人の友達の中から 1 人を選ぶ.以降はその友達をターゲットと呼ぶことにする.
  2. JOI 君は,ターゲットとして選んだ友達に,その人がターゲットであることをこっそり伝える.ターゲット以外の友達は,誰がターゲットかを知ることはできない.
  3. ターゲット以外の友達はそれぞれ,ターゲットが誰かを予想して,その人の名前を紙に記入する.ターゲットは自分自身の名前を紙に記入する.
  4. すべての人の記入が終わった後,JOI 君はターゲットの名前を発表する.
  5. 予想が当たった人は 1 点を得る.なお,ターゲットは自分自身の名前を紙に記入しているので,必ず 1 点を得る.予想が外れた人には得点は与えられない. 6.それに加えて,予想が外れた人の人数を X 人としたとき,ターゲットは追加で X 点を得る.

JOI 君たちはこのゲームを M 回行った.それぞれの友達に対して,M 回のゲームにおける合計得点を求めよ.

入力

入力は 3 + M 行からなる.

1 行目には,友達の人数 N (3 ≦ N ≦ 100) が書かれている.

2 行目には,JOI 君たちが行ったゲームの回数 M (3 ≦ M ≦ 100) が書かれている.

3 行目には,M 個の整数 A1, A2, ..., AM が空白を区切りとして書かれている.これは,i 回目 (1 ≦ i ≦ M) のゲームのターゲットが友達 Ai (1 ≦ Ai ≦ N) であることを表す.

続く M 行のうちの i 行目 (1 ≦ i ≦ M) には,N 個の整数 Bi,1, Bi,2, ..., Bi,N が空白を区切りとして書かれている.これは,i 回目のゲームにおいて友達 j (1 ≦ j ≦ N) が友達 Bi,j (1 ≦ Bi,j ≦ N) の名前を紙に記入したことを表す.ターゲットは自分自身の名前を紙に記入するので,j = Ai のとき,常に Bi,j = j である.

出力

それぞれの友達に対して,M 回のゲームにおける合計得点を出力せよ.出力は N 行からなる.j 行目 (1 ≦ j ≦ N) に友達 j の合計得点を出力せよ.

入出力例

入力1

3
4
1 2 3 2
1 1 2
3 2 2
1 1 3
2 2 2

出力1

3
4
5

入出力例 1 では 3 人の友達が 4 回のゲームを行う.

  • 1 回目のゲームのターゲットは友達 1 であり,友達 1 は 2 点,友達 2 は 1 点,友達 3 は 0 点を得る.
  • 2 回目のゲームのターゲットは友達 2 であり,友達 1 は 0 点,友達 2 は 2 点,友達 3 は 1 点を得る.
  • 3 回目のゲームのターゲットは友達 3 であり,友達 1 は 0 点,友達 2 は 0 点,友達 3 は 3 点を得る.
  • 4 回目のゲームのターゲットは友達 2 であり,友達 1 は 1 点,友達 2 は 1 点,友達 3 は 1 点を得る.

4 回のゲーム終了後の合計得点は,友達 1 は 3 点,友達 2 は 4 点,友達 3 は 5 点である.

入力2

5
3
3 3 1
2 4 3 3 3
4 3 3 3 1
1 3 4 1 1

出力2

3
1
6
3
2





解説


この問題は,各ゲームについてそれぞれの友達の得点を計算して,それを合計していくことで解くことができる.

各ゲームにおいて,ターゲットに選ばれていない友達の得点は,その友達のターゲット予想が当たっていたかどうか調べるだけで計算できる.

一方で,ターゲットに選ばれた友達の得点は,予想を外した友達の人数を集計しておくことで計算できる.ターゲットに選ばれた友達は,ターゲット予想を当てたことによる得点も得られることに注意する必要がある.

それぞれの友達の合計得点を管理する配列を用意しておき,各ゲームでの得点を加算していくとよい.