#include <iostream>
using namespace std;

struct point
{
    int X;
    int Y;
};

int arr[1000][1000];
int m,n,p;
int dim=0;

point upd(point xy)
{
    if(dim%4==0)
    {
        if(arr[xy.Y][xy.X+1]==0 && xy.X+1<n)
        {
            return {xy.X+1,xy.Y};
        }
        else
        {
            dim++;
            return {xy.X,xy.Y+1};
        }
    }
    else if(dim%4==1)
    {
        if(arr[xy.Y+1][xy.X]==0 && xy.Y+1<n)
        {
            return {xy.X,xy.Y+1};
        }
        else
        {
            dim++;
            return {xy.X-1,xy.Y};
        }
    }
    else if(dim%4==2)
    {
        if(arr[xy.Y][xy.X-1]==0 && xy.X-1>=0)
        {
            return {xy.X-1,xy.Y};
        }
        else
        {
            dim++;
            return {xy.X,xy.Y-1};
        }
    }
    else if(dim%4==3)
    {
        if(arr[xy.Y-1][xy.X]==0 && xy.Y-1>=0)
        {
            return {xy.X,xy.Y-1};
        }
        else
        {
            dim++;
            return {xy.X+1,xy.Y};
        }
    }
}

int main()
{
    cin >> m >> n >> p;
    point xy={-1,0};
    for(int i=m;i<=m+n*n-1;i++)
    {
        xy=upd(xy);
        arr[xy.Y][xy.X]=i;
        //cout << xy.Y << ' ' << xy.X << endl;
    }
    int sum=0;
    for(int i=0;i<n;i++)
    {
        sum+=arr[p-1][i];
    }
    cout << sum;
    /*for(int i=0;i<n;i++)
    {
        for(int j=0;j<n;j++)
        {
            cout << arr[i][j] << ' ';
        }
        cout << endl;
    }*/

    return 0;
}
