#include<iostream>
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define mod 1000000007
#define inf (int)1e9
#define pb(a) push_back(a)
#define mem(a, b) memset(a, (b), sizeof(a))
#define p pair<int,int>
// ll modpow(ll x,ll n,int M){ll result=1;while(n>0){if(n&1){result=(result * x)%M;}x=(x*x)%M;n=n>>1;}return result;}
// ll mod_mul(ll x,ll y,int M){return ((x%M)*(y%M))%M;}
/////////////////////////////////////////////////
bool ispossible(vector<pair<int,int>>&v,int mid,int n){
priority_queue<p,vector<p>,greater<p>>pq;
int i=0;
int s=1;
while(i<v.size()&&s<n){
while(i<v.size()&&v[i].first<=s){
pq.push({v[i].second,v[i].first});
i++;
}
if(pq.empty()) return false;
auto x= pq.top();
s=min(x.first,s+mid);
pq.pop();
while( !pq.empty()&&pq.top().first<=s) pq.pop();
}
return s==n;
}
int main(){
ios_base::sync_with_stdio(false);cin.tie(NULL);
int t;
cin>>t;
while(t--){
int n,m,l,r;
cin>>n>>m;
vector<pair<int,int>>v;
int right =INT_MIN;
for(int i=0;i<m;i++){
cin>>l>>r;
v.push_back({l,r});
right =max(right,r-l);
}
sort(begin(v),end(v));
int left=1;
int ans=-1;
right=1e9;
while(left<=right){
int mid = left+ (right-left)/2;
if(ispossible(v,mid,n)){
ans=mid;
right=mid-1;
}else{
left=mid+1;
}
}
cout<<ans<<"\n";
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nIAojZGVmaW5lIG1vZCAxMDAwMDAwMDA3CiNkZWZpbmUgaW5mIChpbnQpMWU5CiNkZWZpbmUgcGIoYSkgcHVzaF9iYWNrKGEpCiNkZWZpbmUgbWVtKGEsIGIpIG1lbXNldChhLCAoYiksIHNpemVvZihhKSkKI2RlZmluZSBwIHBhaXI8aW50LGludD4KLy8gbGwgbW9kcG93KGxsIHgsbGwgbixpbnQgTSl7bGwgcmVzdWx0PTE7d2hpbGUobj4wKXtpZihuJjEpe3Jlc3VsdD0ocmVzdWx0ICogeCklTTt9eD0oeCp4KSVNO249bj4+MTt9cmV0dXJuIHJlc3VsdDt9Ci8vIGxsIG1vZF9tdWwobGwgeCxsbCB5LGludCBNKXtyZXR1cm4gKCh4JU0pKih5JU0pKSVNO30KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKCmJvb2wgaXNwb3NzaWJsZSh2ZWN0b3I8cGFpcjxpbnQsaW50Pj4mdixpbnQgbWlkLGludCBuKXsKIAogICAgcHJpb3JpdHlfcXVldWU8cCx2ZWN0b3I8cD4sZ3JlYXRlcjxwPj5wcTsKCiAgICBpbnQgaT0wOwogICAgaW50IHM9MTsKICAgIHdoaWxlKGk8di5zaXplKCkmJnM8bil7CgogICAgICAgIHdoaWxlKGk8di5zaXplKCkmJnZbaV0uZmlyc3Q8PXMpewogICAgICAgICAKICAgICAgICAgICAgcHEucHVzaCh7dltpXS5zZWNvbmQsdltpXS5maXJzdH0pOwogICAgICAgICAgICBpKys7CiAgICAgICAgfSAKICAgICAgICBpZihwcS5lbXB0eSgpKSByZXR1cm4gZmFsc2U7CgogICAgICAgIGF1dG8geD0gcHEudG9wKCk7CiAgICAgICAgcz1taW4oeC5maXJzdCxzK21pZCk7CiAgICAgICAgcHEucG9wKCk7CiAgICAgICB3aGlsZSggIXBxLmVtcHR5KCkmJnBxLnRvcCgpLmZpcnN0PD1zKSBwcS5wb3AoKTsKCiAgICB9CiAgICAKICAgcmV0dXJuIHM9PW47Cgp9CgoKCmludCBtYWluKCl7CiBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTtjaW4udGllKE5VTEwpOwogICAKCiAgIGludCB0OwogICBjaW4+PnQ7CiAgIHdoaWxlKHQtLSl7CiAgICBpbnQgbixtLGwscjsKICAgIGNpbj4+bj4+bTsKICAgIHZlY3RvcjxwYWlyPGludCxpbnQ+PnY7CiAgICAKICAgIGludCByaWdodCA9SU5UX01JTjsKICAgIGZvcihpbnQgaT0wO2k8bTtpKyspewogICAgICBjaW4+Pmw+PnI7CiAgICAgIHYucHVzaF9iYWNrKHtsLHJ9KTsKICAgIAogICAgICByaWdodCA9bWF4KHJpZ2h0LHItbCk7CgogICAgfQoKICAgCiAgICBzb3J0KGJlZ2luKHYpLGVuZCh2KSk7CiAgICBpbnQgbGVmdD0xOwogICAgaW50IGFucz0tMTsKICAgIHJpZ2h0PTFlOTsKCiAgICB3aGlsZShsZWZ0PD1yaWdodCl7CiAgICAgIAogICAgICAgaW50IG1pZCA9IGxlZnQrIChyaWdodC1sZWZ0KS8yOwogICAgIAogICAgICAgaWYoaXNwb3NzaWJsZSh2LG1pZCxuKSl7CiAgICAgICAgYW5zPW1pZDsKICAgICAgICByaWdodD1taWQtMTsKICAgICAgIH1lbHNlewogICAgICAgIGxlZnQ9bWlkKzE7CiAgICAgICB9CgogICAgfQoKICAgIGNvdXQ8PGFuczw8IlxuIjsKCgoKCiAgIH0KICByZXR1cm4gMDsKfQ==