Why i'm getting WA when using Min Heap?

When i am using min Heap then there is no need to reverse the final ans vector but it gives me Wrong Answer I am not getting it why?

Blockquote

 void solve(){
   
 int k , Q;
 cin >> k >> Q;
 vi s(k);
 vi m(k);

for(int i =0;i<k;i++)
	cin>>m[i];

for(int i =0;i<k;i++)
	cin>>s[i];

sort(m.begin(),m.end());
sort(s.begin(),s.end());	
    // pqi means priority queue increasing/(min heap)
pqi pq;	
vi ans;

for(int i = 0 ;i<k;i++)
{
	for(int j = 0;j<k;j++)
	{	
		if(pq.size() < 10000)
		pq.push(m[i] + s[j]);

		else if(pq.top() > m[i]+s[j])
		{
			pq.pop();
			pq.push(m[i]+s[j]);
		}
		else
		{
			break;
		}
	}
}

while(!pq.empty())
{
	ans.push_back(pq.top());
	pq.pop();
}

while(Q--)
{
	int qi;cin>>qi;
	cout<<ans[qi-1]<<'\n';
}

}

Blockquote