I am getting wrong answer. can anyone please help me findiing the test case
#include<bits/stdc++.h>
using namespace std;
int main()
{
long n,m;
cin>>n>>m;
vector <pair <long,long > > V;
for(long i=0;i<n;i++)
{
for(long j=0;j<m;j++)
{
long x;
cin>>x;
V.push_back({x,i+1});
}
}
sort(V.begin(),V.end());
/* for(long j=0;j<m*n;j++)
{
cout<<V[j].first<<" "<<V[j].second<<" ";
}
cout<<endl;*/
vector <long> count(n+1,0);long c=1;
long left=0;
long right=0;long res,min=100000000;
count[V[right].second]++;
/* cout<<V[left].first<<" "<<V[left].second<<endl;
cout<<V[right].first<<" "<<V[right].second<<endl;
*/
while(left<m*n)
{
while(right<m*n && c!=n)
{
right++;
if(right!=m*n)
{
long temp=count[V[right].second];
count[V[right].second]++;
if(temp==0 && count[V[right].second]==1)
c++;
}
else
break;
}
// cout<<c<<endl;
// cout<<"left: "<<left<<endl;
// cout<<"right: "<<right<<endl;
if(right==m*n)
break;
if(c==n)
{
res=V[right].first-V[left].first;
if(res<min)
{
min=res;
}
}
long temp2=count[V[left].second];
// cout<<temp2<<endl;
count[V[left].second]--;
// cout<<count[V[left].second]<<endl;
if(temp2==1 && count[V[left].second]==0)
c--;
// cout<<c<<endl;
left++;
}
cout<<min<<endl;
return 0;
}