#include<bits/stdc++.h>
 
using namespace std;
constexpr int mod = 100000;
constexpr int MAX_N = 50;
constexpr int MAX_S = 3010;
constexpr int MAX_M = 2010;
typedef long long LL;
int main(){
int N[5],M[5],S[5];
int ret[5];
LL dp[MAX_S][MAX_N];
vector<int> query[MAX_M];
int q=0;
for(q=0;;q++){
scanf("%d%d%d",N+q,M+q,S+q);if(N[q]+M[q]+S[q]==0)break;
query[M[q]].push_back(q);
}
for(int i=0;i<MAX_S;i++)for(int j=0;j<MAX_N;j++)dp[i][j]=0;
dp[0][0]=1;
for(int i=1;i<MAX_M;i++){
for(int j=MAX_S-1;j>=i;j--)for(int k=1;k<MAX_N;k++){
  dp[j][k]+=dp[j-i][k-1];
  if(dp[j][k]>=mod)dp[j][k]-=mod;
}
for(auto &id:query[i])ret[id] = (int)dp[S[id]][N[id]*N[id]];
}
for(int i=0;i<q;i++)printf("%d\n",ret[i]);
return 0;
}
