#include <bits/stdc++.h>
using namespace std;
long long n, k;
long long sum(long long x, long long y) {
  if (x <= (y << 1)) return 0;
  long long ans = 0;
  long long a[2], b[2];
  b[0] = 1, b[1] = 0;
  a[0] = x, a[1] = x - 1;
  while (a[1] >= (y << 1)) {
    if (a[1] == (y << 1)) return b[0] + ans;
    ans += b[0] + b[1];
    if (a[0] & 1)
      b[0] = (b[0] << 1) + b[1];
    else
      b[1] = (b[1] << 1) + b[0];
    a[1] = (a[0] >> 1) - 1;
    a[0] >>= 1;
  }
  return ans;
}
long long solve(long long l, long long r, long long p, long long k) {
  long long mid = (l + r) >> 1;
  if (k == 1) return mid;
  long long t = sum(mid - l, p) + sum(r - mid, p + 1);
  if (k > t + 1) return solve(mid + 1, r, p, k - 1 - sum(mid - l, p));
  return solve(l, mid - 1, p, k - 1 - sum(r - mid, p + 1));
}
signed main() {
  scanf("%lld%lld", &n, &k);
  if (k == 1) {
    puts("1");
    return 0;
  }
  if (k == 2) {
    printf("%lld", n);
    return 0;
  }
  n -= 2, k -= 2;
  long long l = 0, r = n / 2 + 1, mid = (l + r) >> 1;
  while (l + 1 < r) {
    if (sum(n, mid) < k)
      r = mid;
    else
      l = mid;
    mid = (l + r) >> 1;
  }
  printf("%lld", solve(2, n + 1, l, k));
  return 0;
}
