#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

vector<vector<ll>> vec, temp, temp2;
set<vector<vector<ll>>> st;
ll height, width, points;
bool fail;

void center(ll a, ll b)
{
    temp2.clear();
    temp2.push_back({});
    ll siz = temp[a][b];
    for(ll i = a-siz; i <= a+siz; i++)
    {
        for(ll j = b-siz; j <= b+siz; j++)
        {
            temp2.back().push_back(temp[i][j]);
        }
        temp2.push_back({});
    }
    if(st.count(temp2))
    {
        fail = true;
        // cout << "failed on\n";
        // for(ll i = 0; i < temp2.size(); i++)
        // {
        //     for(ll num : temp2[i])
        //     {
        //         cout << num << "\t";
        //     }
        //     cout << "\n";
        // }
    }
    st.insert(temp2);
}

void thing()
{
    temp.assign(3*height, vector<ll>(3*width, -1));
    for(ll i = 0; i < height; i++)
    {
        for(ll j = 0; j < width; j++)
        {
            temp[i][j] = vec[i][j];
        }
    }
    for(ll i = 0; i < height; i++)
    {
        for(ll j = width; j < 3*width; j++)
        {
            temp[i][j] = temp[i][j % width];
        }
    }
    for(ll i = height; i < 3*height; i++)
    {
        for(ll j = 0; j < 3*width; j++)
        {
            temp[i][j] = temp[i%height][j];
        }
    }
    for(ll i = height; i < 2*height; i++)
    {
        for(ll j = width; j < 2*width; j++)
        {
            center(i, j);
            if(fail) return;
        }
    }
}

void solve()
{
    // for(ll i = 0; i < height; i++)
    // {
    //     for(ll j = 0; j < width; j++)
    //     {
    //         scanf("%lld", &vec[i][j]);
    //     }
    // }
    for(ll i = 0; i < height/2; i++)
    {
        for(ll j = 0; j < width; j++)
        {
            swap(vec[i][j], vec[height-i-1][j]);
        }
    } // horizontally
    thing();
    for(ll i = 0; i < width/2; i++)
    {
        for(ll j = 0; j < height; j++)
        {
            swap(vec[j][i], vec[j][width-i-1]);
        }
    } // both
    thing();
    for(ll i = 0; i < height/2; i++)
    {
        for(ll j = 0; j < width; j++)
        {
            swap(vec[i][j], vec[height-i-1][j]);
        }
    } // vertically
    thing();
}

ll loop(ll it, vector<vector<ll>> pointsvec)
{
    if(it == points)
    {
        fail = false;
        vec = pointsvec;
        solve();
        if(!fail)
        {
            cout << "found\n";
        }
    }
    else
    {
        for(ll i = 0; i < height; i++)
        {
            for(ll j = 0; j < width; j++)
            {
                vector<vector<ll>> nxt = pointsvec;
                nxt[i][j] = 2;
                loop(it+1, nxt);
            }
        }
    }
}

int main()
{
    scanf("%lld %lld %lld", &height, &width, &points);
    loop(0, vector<vector<ll>>(height, vector<ll>(width, 1)));
}