Time Limit: 3 sec / Memory Limit: 128 MB
不思議な生き物と人間が互いに助け合って生きている世界. この世界では自分で捕まえたモンスター同士を戦わせる大会が盛んに行われており, 多くの少年少女達が世界一のトレーナーを目指している.
大会では自分が捕まえたモンスターからパーティを作り,パーティ同士のバトルをする. モンスターのペアには相性があり,相性が非常に悪い場合と普通の場合がある. 相性が非常に悪い場合,そのペアのモンスターを同じパーティに入れることはできない. 相性が普通の場合には,友情度という数値で相性の良さが表現される. バトルでは,パーティ全体の友情度の和が勝負の鍵となる.
いまN匹のモンスターからK匹のモンスターからなるパーティを作りたい. M個のモンスターのペア(a_i, b_i)に対して相性が分かっており,整数 c_i で表されている. c_i = 0 のとき,a_i 番目のモンスターと b_i 番目のモンスターは相性が非常に悪いことを意味する. c_i ≠ 0 のとき,a_i 番目のモンスターと b_i 番目のモンスターは相性が普通であり,その友情度は c_i であることを意味する. 与えられたM個のペア以外は,相性が普通であり,それらの友情度はすべて0である.
パーティの友情度の和を最大にする選び方を考えてみよう.
入力形式
入力は以下の形式で与えられる
N M K a_1 b_1 c_1 ... a_M b_M c_M
出力形式
K匹のモンスターからなるパーティを作ることができない場合は1行に "Impossible" を出力せよ.
パーティを作ることができるとき,友情度の和の最大値を出力せよ.
制約
- 1 ≤ K ≤ N ≤ 2000
- 0 ≤ M ≤ N
- 1 ≤ a_i ≠ b_i ≤ N
- |c_i| ≤ 10000
- 各モンスターは a_1, a_2, …, a_M, b_1, b_2, …, b_M の中に高々2回しか現れない.
- i ≠ j ⇒ \{a_i, b_i\} ≠ \{a_j, b_j\}
入出力例
入力例 1
6 5 4 2 1 1 2 5 2 5 1 1 4 3 2 3 6 -1
出力例 1
4
入力例 2
3 1 3 1 2 -10
出力例 2
-10
入力例 3
6 3 5 1 2 0 2 3 10 3 4 0
出力例 3
Impossible