#include <bits/stdc++.h>
using namespace std;
int main() {
  long long n, l, r, k, x, ans = -1;
  cin >> n >> l >> r >> k;
  x = (r - l + n) % n + 1;
  if (n <= 3e6) {
    for (long long i = n; i >= 0; i--) {
      long long z = (k - 1) % (i + n) - x + 1;
      long long p = z + 1;
      if (z < 0 || z > i || z > x || x - z > n - i + 1) continue;
      if ((p <= i && p <= x) || x - z <= n - i) {
        ans = i;
        break;
      }
    }
  } else {
    long long t = k / n;
    for (long long i = 0; i <= t; i++) {
      long long res = (k - 2 * x - n * (i - 1) + 1) / (i + 1);
      long long z = k - i * (res + n) - x, a;
      if (z < 0) {
        a = ceil((-z) * 1.0 / i);
        if (a * i + z <= res - a && a * i + z <= x) ans = max(ans, res - a);
      } else if (z <= x && z <= res)
        ans = max(ans, res);
      else if (res <= n) {
        a = (z + res + 1) / 2;
        z = res - a;
        res = a;
        if (z > x) {
          a = ceil((z - x) * 1.0 / i);
          res += a;
          z -= a;
        }
        if (res <= n && z >= 0) ans = max(ans, res);
      }
    }
  }
  cout << ans << endl;
  return 0;
}
