あるプログラミングコンテストでは,競技後の懇親会でビンゴゲームをする習わしがある.しかし,このビンゴゲームで使うビンゴカードは少々特殊で,以下の条件に従って作成される.
以下は, N = 5, M = 50, S = 685 のときのビンゴカードの例である.
懇親会のために上の条件を満たすビンゴカードをできるだけたくさん作りたい.ただし,同一のカードを2枚以上作ってはならない.作ることができるビンゴカードの枚数の最大値を 100000 で割った余りを出力するプログラムを作成せよ.
入力は複数のデータセットからなる.各データセットは以下の形式で与えられる.
入力は1行からなり, その行にはビンゴカードのサイズ N (1≤N≤7), マス目に書かれている整数の上限 M (1≤M≤2000),ビンゴカードに書かれている整数の合計 S (1≤S≤3000) を表す3つの正整数が空白区切りで書かれている.ただし, 与えられるどの入力データにおいても,条件を満たすビンゴカードを1枚以上作ることができる.
N, M, S が 0 のとき入力の終了を示す. データセットの数は 5 を超えない.
データセットごとに, 作ることができるビンゴカードの枚数の最大値を 100000 で割った余りを1行に出力せよ.
3 9 45 3 100 50 5 50 685 0 0 0
1 7 74501
3つ目の入力例に対して,作ることができるビンゴカードの枚数の最大値は 642499974501 であるので, 100000 で割った余りの 74501 を出力する.
上記問題文と自動審判に使われるデータは、情報オリンピック日本委員会が作成し公開している問題文と採点用テストデータです。