can anyone pls tell why am i getting Runtime Error(SIGABRT) error in the below code.
//#include <bits/stdc++.h>
#include <iostream>
#include <vector>
#include<set>
#include<algorithm>
#include<map>
using namespace std;
typedef int ll;
int find(vector<int>& v, int l, int r, int key)
{
int ans = l+1;
while(l<=r){
int m = (l + r)/2;
if(v[m] > key){
ans = m;
r = m-1;
}
else{
l = m+1;
}
}
return ans;
}
int fun(vector<ll>& v)
{
if (v.size() == 0)
return 0;
vector<ll> xxx(v.size(), 0);
int lll = 1;
xxx[0] = v[0];
for (int i = 1; i < v.size(); i++) {
if (v[i] < xxx[0])
xxx[0] = v[i];
else if (v[i] >= xxx[lll - 1])
xxx[lll++] = v[i];
else
xxx[find(xxx, 0, lll - 1, v[i])] = v[i];
}
return lll;
}
int main() {
int t = 1;
cin>>t;
while(t--){
ll n,K;
cin>>n>>K;
vector<ll> v;
set<ll> sss;
map<ll,ll> mp;
for(int i=0;i<n;i++){
int x;
cin>>x;
if(sss.find(x)==sss.end()){
v.push_back(x);
sss.insert(x);
}
mp[x]++;
}
int sz = v.size();
sort(v.begin(),v.end());
vector<ll> ans = vector<ll>();
for(int i=0;i<sz;i++){
for(int j=i;j<sz;j++){
vector<ll> temp(n);
int idx = 0;
for(int k=i;k<=j;k++){
int x = mp[v[k]];
while(x > 0){
x--;
temp[idx++] = v[k];
}
}
for(int k=sz;k>j;k--){
int x = mp[v[k]];
while(x > 0){
x--;
temp[idx++] = v[k];
}
}
for(int k=i-1;k>=0;k--){
int x = mp[v[k]];
while(x > 0){
x--;
temp[idx++] = v[k];
}
}
int check = fun(temp);
if(check == K){
if(ans.size()==0){
for(int i=0;i<temp.size();i++){
ans.push_back(temp[i]);
}
}
else{
int sm = 0;
for(int k=0;k<temp.size();k++){
if(ans[k] < temp[k]){
break;
}
if(temp[k] < ans[k]){
sm = 1;
break;
}
}
if(sm){
ans = temp;
}
}
}
}
}
if(ans.size() == 0){
cout<<-1<<endl;
}
else{
for(int i=0;i<n;i++){
cout<<ans[i]<<" ";
}
cout<<endl;
}
}
}