#include <bits/stdc++.h>
using namespace std;
long long ans = -1;
int main() {
  long long n, k, l, r;
  cin >> n >> l >> r >> k;
  long long len = (l <= r ? (r - l + 1) : (n - l + 1 + r));
  if (n <= 1000000) {
    for (int i = n; i <= 2 * n; i++) {
      long long s = k % i;
      if (!s) {
        s = i;
      }
      s -= len;
      long long l1 = max(i - n - (n - len) - 1, 0ll);
      long long l2 = min(len, i - n);
      if (s >= l1 && s <= l2) {
        ans = max(ans, i - n);
      }
    }
  } else {
    if (k >= len && k <= 2 * len) {
      ans = max(ans, (k == 2 * len) ? n : n - len + k - len + 1);
    }
    for (int i = 1; i <= k / n; i++) {
      long long s2 = min((k - 2 * len + 2 * n + 1) / (i + 1), (k - len) / i);
      long long s1 =
          max((k - 2 * len + i - 1) / i, (k - len + n + i) / (i + 1));
      if (s1 <= s2) {
        ans = max(ans, s2 - n);
      }
    }
  }
  cout << ans << endl;
  return 0;
}
