/* Authors: Vu Hoang Bach from Phuoc Hoa Secondary School */
/* Enjoy TheFatRat's music while reading my code. Link: https://w...content-available-to-author-only...e.com/watch?v=GCx9FU59FJc&t=669s */
//#pragma GCC optimize("O3", "unroll-loops")
//#pragma GCC target("avx2", "bmi", "bmi2", "lzcnt", "popcnt")
#include <bits/stdc++.h>
#define ldb long double
//#define double ldb
#define db double
#define name "RECTANGL"
#define unomap unordered_map
#define unoset unordered_set
#define endl '\n'
#define str string
#define strstr stringstream
#define sz(a) a.size()
#define ll long long
//#define int ll
#define pii pair <int, int>
#define pll pair <ll, ll>
#define Unique(a) a.resize(unique(all(a)) - a.begin())
#define ull unsigned ll
#define fir first
#define sec second
#define idc cin.ignore()
#define lb lower_bound
#define ub upper_bound
#define all(s) s.begin(), s.end()
#define rev reverse
#define sigma ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
#define skibidi int main
#define rizz signed main
#define gcd __gcd
#define found(a, mp) mp.find(a) != mp.end()
#define game_over exit(0);
#define stfu return 0;
#define stop break;
#define odd(n) n & 1
#define pushb push_back
#define popb pop_back
#define pushf push_front
#define popf pop_front
#define even(n) !odd(n)
#define mul2x(a, x) a << x
#define div2x(a, x) a >> x
#define no_check continue;
#define lcm(a, b) a / __gcd(a, b) * b
#define log_base(x, base) log(x) / log(base)
#define debug clog << "No errors!"; game_over;
#define forw(i, a, b) for (int i = a; i <= b; ++i)
#define forw2(i, a, b) for (ll i = a; i <= b; ++i)
#define fors(i, a, b) for (int i = a; i >= b; --i)
#define fors2(i, a, b) for (ll i = a; i >= b; --i)
#define meme memset
#define pqueue priority_queue
#define want_digit(x) cout << fixed << setprecision(x);
#define excuting_time 1000.0 * clock() / CLOCKS_PER_SEC
using namespace std;
const int MOD = 1e9 + 7; // 998244353
const int inf = 1e9;
const ll INF = 1e18;
const int N = 1e4;
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
ll random(const ll &L, const ll &R)
{
return uniform_int_distribution<ll> (L, R) (rng);
}
int n, a[N + 5][N + 5], x, y;
bool visited[N + 5][N + 5];
bool inside(int ind)
{
return (1 <= ind && ind <= n);
}
bool check(int i, int j)
{
if (!inside(i)) return false;
if (!inside(j)) return false;
return !visited[i][j];
}
void build()
{
int curr = 2;
int direction = 0;
int row = 1, col = 1;
visited[1][1] = true;
a[1][1] = 1;
while (curr <= n * n)
{
if (!direction)
{
while (check(row, col + 1))
{
++col;
a[row][col] = curr;
visited[row][col] = true;;
++curr;
}
}
else if (direction == 1)
{
while (check(row + 1, col))
{
++row;
a[row][col] = curr;
visited[row][col] = true;
++curr;
}
}
else if (direction == 2)
{
while (check(row, col - 1))
{
--col;
a[row][col] = curr;
visited[row][col] = true;
++curr;
}
}
else
{
while (check(row - 1, col))
{
--row;
a[row][col] = curr;
visited[row][col] = true;
++curr;
}
}
(direction += 1) %= 4;
}
}
void cook()
{
cin >> n >> x >> y;
build();
cout << a[x][y] << endl;
}
skibidi()
//rizz()
{
srand(time(NULL));
sigma;
if (fopen(name".INP", "r"))
{
freopen(name".INP", "r", stdin);
freopen(name".OUT", "w", stdout);
}
int numTest = 1;
// cin >> numTest;
while (numTest--)
{
cook();
}
stfu;
}
LyogQXV0aG9yczogVnUgSG9hbmcgQmFjaCBmcm9tIFBodW9jIEhvYSBTZWNvbmRhcnkgU2Nob29sICovCi8qIEVuam95IFRoZUZhdFJhdCdzIG11c2ljIHdoaWxlIHJlYWRpbmcgbXkgY29kZS4gTGluazogaHR0cHM6Ly93Li4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5lLmNvbS93YXRjaD92PUdDeDlGVTU5RkpjJnQ9NjY5cyAqLwoKLy8jcHJhZ21hIEdDQyBvcHRpbWl6ZSgiTzMiLCAidW5yb2xsLWxvb3BzIikKLy8jcHJhZ21hIEdDQyB0YXJnZXQoImF2eDIiLCAiYm1pIiwgImJtaTIiLCAibHpjbnQiLCAicG9wY250IikKCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgojZGVmaW5lIGxkYiBsb25nIGRvdWJsZQovLyNkZWZpbmUgZG91YmxlIGxkYgojZGVmaW5lIGRiIGRvdWJsZQojZGVmaW5lIG5hbWUgIlJFQ1RBTkdMIgojZGVmaW5lIHVub21hcCB1bm9yZGVyZWRfbWFwCiNkZWZpbmUgdW5vc2V0IHVub3JkZXJlZF9zZXQKI2RlZmluZSBlbmRsICdcbicKI2RlZmluZSBzdHIgc3RyaW5nCiNkZWZpbmUgc3Ryc3RyIHN0cmluZ3N0cmVhbQojZGVmaW5lIHN6KGEpIGEuc2l6ZSgpCiNkZWZpbmUgbGwgbG9uZyBsb25nCi8vI2RlZmluZSBpbnQgbGwKI2RlZmluZSBwaWkgcGFpciA8aW50LCBpbnQ+CiNkZWZpbmUgcGxsIHBhaXIgPGxsLCBsbD4KI2RlZmluZSBVbmlxdWUoYSkgYS5yZXNpemUodW5pcXVlKGFsbChhKSkgLSBhLmJlZ2luKCkpCiNkZWZpbmUgdWxsIHVuc2lnbmVkIGxsCiNkZWZpbmUgZmlyIGZpcnN0CiNkZWZpbmUgc2VjIHNlY29uZAojZGVmaW5lIGlkYyBjaW4uaWdub3JlKCkKI2RlZmluZSBsYiBsb3dlcl9ib3VuZAojZGVmaW5lIHViIHVwcGVyX2JvdW5kCiNkZWZpbmUgYWxsKHMpIHMuYmVnaW4oKSwgcy5lbmQoKQojZGVmaW5lIHJldiByZXZlcnNlCiNkZWZpbmUgc2lnbWEgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKSwgY2luLnRpZSgwKSwgY291dC50aWUoMCk7CiNkZWZpbmUgc2tpYmlkaSBpbnQgbWFpbgojZGVmaW5lIHJpenogc2lnbmVkIG1haW4KI2RlZmluZSBnY2QgX19nY2QKI2RlZmluZSBmb3VuZChhLCBtcCkgbXAuZmluZChhKSAhPSBtcC5lbmQoKQojZGVmaW5lIGdhbWVfb3ZlciBleGl0KDApOwojZGVmaW5lIHN0ZnUgcmV0dXJuIDA7CiNkZWZpbmUgc3RvcCBicmVhazsKI2RlZmluZSBvZGQobikgbiAmIDEKI2RlZmluZSBwdXNoYiBwdXNoX2JhY2sKI2RlZmluZSBwb3BiIHBvcF9iYWNrCiNkZWZpbmUgcHVzaGYgcHVzaF9mcm9udAojZGVmaW5lIHBvcGYgcG9wX2Zyb250CiNkZWZpbmUgZXZlbihuKSAhb2RkKG4pCiNkZWZpbmUgbXVsMngoYSwgeCkgYSA8PCB4CiNkZWZpbmUgZGl2MngoYSwgeCkgYSA+PiB4CiNkZWZpbmUgbm9fY2hlY2sgY29udGludWU7CiNkZWZpbmUgbGNtKGEsIGIpIGEgLyBfX2djZChhLCBiKSAqIGIKI2RlZmluZSBsb2dfYmFzZSh4LCBiYXNlKSBsb2coeCkgLyBsb2coYmFzZSkKI2RlZmluZSBkZWJ1ZyBjbG9nIDw8ICJObyBlcnJvcnMhIjsgZ2FtZV9vdmVyOwojZGVmaW5lIGZvcncoaSwgYSwgYikgZm9yIChpbnQgaSA9IGE7IGkgPD0gYjsgKytpKQojZGVmaW5lIGZvcncyKGksIGEsIGIpIGZvciAobGwgaSA9IGE7IGkgPD0gYjsgKytpKQojZGVmaW5lIGZvcnMoaSwgYSwgYikgZm9yIChpbnQgaSA9IGE7IGkgPj0gYjsgLS1pKQojZGVmaW5lIGZvcnMyKGksIGEsIGIpIGZvciAobGwgaSA9IGE7IGkgPj0gYjsgLS1pKQojZGVmaW5lIG1lbWUgbWVtc2V0CiNkZWZpbmUgcHF1ZXVlIHByaW9yaXR5X3F1ZXVlCiNkZWZpbmUgd2FudF9kaWdpdCh4KSBjb3V0IDw8IGZpeGVkIDw8IHNldHByZWNpc2lvbih4KTsKI2RlZmluZSBleGN1dGluZ190aW1lIDEwMDAuMCAqIGNsb2NrKCkgLyBDTE9DS1NfUEVSX1NFQwp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjb25zdCBpbnQgTU9EID0gMWU5ICsgNzsgLy8gOTk4MjQ0MzUzCmNvbnN0IGludCBpbmYgPSAxZTk7CmNvbnN0IGxsIElORiA9IDFlMTg7CmNvbnN0IGludCBOID0gMWU0OwoKbXQxOTkzN182NCBybmcoY2hyb25vOjpzdGVhZHlfY2xvY2s6Om5vdygpLnRpbWVfc2luY2VfZXBvY2goKS5jb3VudCgpKTsKbGwgcmFuZG9tKGNvbnN0IGxsICZMLCBjb25zdCBsbCAmUikKewogICAgcmV0dXJuIHVuaWZvcm1faW50X2Rpc3RyaWJ1dGlvbjxsbD4gKEwsIFIpIChybmcpOwp9CgppbnQgbiwgYVtOICsgNV1bTiArIDVdLCB4LCB5Owpib29sIHZpc2l0ZWRbTiArIDVdW04gKyA1XTsKCmJvb2wgaW5zaWRlKGludCBpbmQpCnsKICAgIHJldHVybiAoMSA8PSBpbmQgJiYgaW5kIDw9IG4pOwp9Cgpib29sIGNoZWNrKGludCBpLCBpbnQgaikKewogICAgaWYgKCFpbnNpZGUoaSkpIHJldHVybiBmYWxzZTsKICAgIGlmICghaW5zaWRlKGopKSByZXR1cm4gZmFsc2U7CiAgICByZXR1cm4gIXZpc2l0ZWRbaV1bal07Cn0KCnZvaWQgYnVpbGQoKQp7CiAgICBpbnQgY3VyciA9IDI7CiAgICBpbnQgZGlyZWN0aW9uID0gMDsKICAgIGludCByb3cgPSAxLCBjb2wgPSAxOwogICAgdmlzaXRlZFsxXVsxXSA9IHRydWU7CiAgICBhWzFdWzFdID0gMTsKICAgIHdoaWxlIChjdXJyIDw9IG4gKiBuKQogICAgewogICAgICAgIGlmICghZGlyZWN0aW9uKQogICAgICAgIHsKICAgICAgICAgICAgd2hpbGUgKGNoZWNrKHJvdywgY29sICsgMSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICsrY29sOwogICAgICAgICAgICAgICAgYVtyb3ddW2NvbF0gPSBjdXJyOwogICAgICAgICAgICAgICAgdmlzaXRlZFtyb3ddW2NvbF0gPSB0cnVlOzsKICAgICAgICAgICAgICAgICsrY3VycjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChkaXJlY3Rpb24gPT0gMSkKICAgICAgICB7CiAgICAgICAgICAgIHdoaWxlIChjaGVjayhyb3cgKyAxLCBjb2wpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICArK3JvdzsKICAgICAgICAgICAgICAgIGFbcm93XVtjb2xdID0gY3VycjsKICAgICAgICAgICAgICAgIHZpc2l0ZWRbcm93XVtjb2xdID0gdHJ1ZTsKICAgICAgICAgICAgICAgICsrY3VycjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChkaXJlY3Rpb24gPT0gMikKICAgICAgICB7CiAgICAgICAgICAgIHdoaWxlIChjaGVjayhyb3csIGNvbCAtIDEpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAtLWNvbDsKICAgICAgICAgICAgICAgIGFbcm93XVtjb2xdID0gY3VycjsKICAgICAgICAgICAgICAgIHZpc2l0ZWRbcm93XVtjb2xdID0gdHJ1ZTsKICAgICAgICAgICAgICAgICsrY3VycjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICB3aGlsZSAoY2hlY2socm93IC0gMSwgY29sKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgLS1yb3c7CiAgICAgICAgICAgICAgICBhW3Jvd11bY29sXSA9IGN1cnI7CiAgICAgICAgICAgICAgICB2aXNpdGVkW3Jvd11bY29sXSA9IHRydWU7CiAgICAgICAgICAgICAgICArK2N1cnI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgKGRpcmVjdGlvbiArPSAxKSAlPSA0OwogICAgfQp9Cgp2b2lkIGNvb2soKQp7CiAgICBjaW4gPj4gbiA+PiB4ID4+IHk7CiAgICBidWlsZCgpOwogICAgY291dCA8PCBhW3hdW3ldIDw8IGVuZGw7Cn0KCnNraWJpZGkoKQovL3JpenooKQp7CiAgICBzcmFuZCh0aW1lKE5VTEwpKTsKICAgIHNpZ21hOwogICAgaWYgKGZvcGVuKG5hbWUiLklOUCIsICJyIikpCiAgICB7CiAgICAgICAgZnJlb3BlbihuYW1lIi5JTlAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKG5hbWUiLk9VVCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KICAgIGludCBudW1UZXN0ID0gMTsKLy8gICAgY2luID4+IG51bVRlc3Q7CiAgICB3aGlsZSAobnVtVGVzdC0tKQogICAgewogICAgICAgIGNvb2soKTsKICAgIH0KICAgIHN0ZnU7Cn0K