#include <bits/stdc++.h>
using namespace std;
pair<long long, long long> Fguest(long long x, long long v) {
  if (x <= v * 2 - 2) return make_pair(0, 0);
  long long xx = x / 2, guest1 = 0, guest2 = 0;
  pair<long long, long long> tmp = Fguest(xx, v);
  if (x >= v * 2 - 1) guest1++;
  if (x > v * 2 - 1) guest2++;
  if (x & 1) {
    guest1 += tmp.first * 2;
    guest2 += tmp.first + tmp.second;
    return make_pair(guest1, guest2);
  } else {
    guest1 += tmp.first + tmp.second;
    guest2 += tmp.second * 2;
    return make_pair(guest1, guest2);
  }
}
int main() {
  long long n, k;
  cin >> n >> k;
  long long st = 1, last = n;
  if (k == 1) {
    cout << 1 << endl;
    return 0;
  }
  if (k == 2) {
    cout << n << endl;
    return 0;
  }
  k -= 2;
  while (st < last - 1) {
    long long len = last - st - 1;
    long long mid = (st + last) >> 1;
    if (k == 1ll) {
      cout << mid << endl;
      return 0;
    }
    long long len1 = mid - st - 1, len2 = last - mid - 1;
    long long mn = 1, mx = n;
    while (mn < mx - 1) {
      long long center = (mn + mx) >> 1;
      long long guest = Fguest(len, center).first;
      if (guest < k)
        mx = center;
      else
        mn = center;
    }
    long long leftguest = Fguest(len1, mn).first,
              rightguest = Fguest(len2, mx).first;
    long long tot = leftguest + 1 + rightguest;
    if (tot >= k) {
      k -= 1 + rightguest;
      last = mid;
    } else {
      k -= 1 + leftguest;
      st = mid;
    }
  }
  return 0;
}
