//dfs暴力,50%数据
#include<iostream>
using namespace std;
typedef long long int ll;
int stopx[8] = {-2, -1, 1, 2, 2, 1, -1, -2}, stopy[8] = {1, 2, 2, 1, -1, -2, -2, -1};
int st[10][110];
ll n, m, k, res;
void dfs(ll x, ll y, ll sum)
{
if(sum == k)
{
res = (res + 1) % 1000000007;
return ;
}
if(y > m)
{
y = 1;
x ++;
if(x > n) return;
}
//不放
dfs(x, y + 1, sum);
//放
if(st[x][y] == 0)
{
for(int i = 0; i < 8; i ++)
{
ll dx = x + stopx[i], dy = y +stopy[i];
if(dx < 1 || dy < 1 || dx > n || dy > m)continue;
st[dx][dy] ++;
}
st[x][y] = 1;
dfs(x, y, sum + 1);
st[x][y] = 0;
for(int i = 0; i < 8; i ++)
{
int dx = x + stopx[i], dy = y +stopy[i];
if(dx < 1 || dy < 1 || dx > n || dy > m)continue;
st[dx][dy] --;
}
}
}
int main()
{
cin >> n >> m >> k;
dfs(1, 1, 0);
cout << res % 1000000007;
return 0;
}