#include <bits/stdc++.h>
using namespace std;
inline long long add(long long a, long long b) {
  return ((a % 1000000007) + (b % 1000000007)) % 1000000007;
}
inline long long mul(long long a, long long b) {
  return ((a % 1000000007) * (b % 1000000007)) % 1000000007;
}
inline long long sub(long long a, long long b) {
  return ((a % 1000000007) - (b % 1000000007) + 1000000007) % 1000000007;
}
long long power(long long x, unsigned long long y, long long p = 1000000007) {
  if (y == 0) {
    return 1;
  }
  long long ans = power(x, y / 2, p);
  if (y % 2) {
    long long z = ((((ans * ans) % p) * x) % p);
    return z;
  } else {
    long long z = (ans * ans) % p;
    return z;
  }
}
long long solve() {
  long long a, b, c, d;
  cin >> a >> b >> c >> d;
  if (b >= a) {
    return b;
  } else {
    if (d >= c) {
      return -1;
    } else {
      long long ans = b;
      a = a - b;
      long long y = c - d;
      long long z = a / y;
      if (a % y) {
        z++;
      }
      ans += z * (c);
      return ans;
    }
  }
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long t = 1;
  cin >> t;
  while (t--) {
    cout << solve() << "\n";
  }
  return 0;
}
