#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=2e5+10;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
ll n,k,l1,r1,l2,r2;
scanf("%lld%lld%lld%lld%lld%lld",&n,&k,&l1,&r1,&l2,&r2);
if(l1>l2)swap(l1,l2),swap(r1,r2);
if(r2<r1)
{
k-=(r2-l2)*n;
if(k<=0){printf("0\n");continue;}
ll t1=r1-r2+l2-l1;
ll used=min(k/t1+(k%t1!=0),n);
if(used==k/t1+(k%t1!=0))printf("%lld\n",k);
else printf("%lld\n",(k-n*t1)*2+n*t1);
}
else if(l2<r1)
{
k-=(r1-l2)*n;
if(k<=0){printf("0\n");continue;}
ll t1=r2-r1+l2-l1;
if(!t1){printf("%lld\n",k*2);continue;}
ll used=min(k/t1+(k%t1!=0),n);
if(used==k/t1+(k%t1!=0))printf("%lld\n",k);
else printf("%lld\n",(k-n*t1)*2+n*t1);
}
else
{
ll t1=l2-r1,t2=r2-l1,res=(1LL<<60);
for(int i=1;i<=n;i++)
{
if(k-(t2*(i-1))<t2)
{
ll tmp=(t1+t2)*(i-1)+t1+(k-(t2*(i-1)));
res=min(res,tmp);
}
if(t2*i>k)break;
ll tmp=(t1+t2)*i+(k-t2*i)*2;
res=min(res,tmp);
}
printf("%lld\n",res);
}
}
return 0;
}