模拟
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<vector>
#include<string>
#include<cstring>
#include <cmath>
#include<algorithm>
#include<stack>
using namespace std;
int T;
long long N;
long long M;
long long V;
long long K;
long long ans;
void solve()
{
if(M>=N)
{
ans=0;
return;
}
else if(M<N&&M<=V)
{
ans=-1;
return;
}
long long tmp=M;
while(tmp<N)
{
// if(tmp<V)
// {
// ans=-1;
// return;
// }
long long t2=(tmp-V)*K;
if(t2<=tmp)
{
ans=-1;
return;
}
else
{
tmp=t2;
ans++;
}
}
}
int main()
{
freopen("input.txt","r",stdin);
scanf("%d",&T);
for(int i=1;i<=T;i++)
{
scanf("%I64d %I64d %I64d %I64d",&N,&M,&V,&K);
ans=0;
solve();
printf("%I64d\n",ans);
}
return 0;
}