#include <bits/stdc++.h>
using namespace std;
vector<int> sum(vector<int>& t)
{
    vector<int> s;
    for (int i = 0; i < t.size()-1; ++i)
    {
        s.push_back(t[i] + t[i+1]);
    }
    sort(s.begin(), s.end());
    return s;
}
int compare(vector<int>& t1, vector<int>& t2)
{
    for (int i=0; i<t1.size(); ++i)
    if (t1[i] != t2[i])return 0;
    return 1;
}
int main()
{
    int t;
    cin >> t;
    while (t--)
    {
        int n,x;
        cin >> n;
        vector<int> res, initial, resSum, iniSum;
        for (int i =0; i < n; i++)
        {
            cin >> x;
            res.push_back(x);
            initial.push_back(i+1);
        }
        resSum = sum(res);
        do {
            iniSum = sum(initial);
            if (compare(iniSum, resSum) && !compare(initial, res))
                break;
        }while (next_permutation(initial.begin(), initial.begin() + n));
        for (int i = 0; i < n; i++)
            cout << initial[i] <<" ";
            cout << endl;
    }
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
vector<int> sum(vector<int>& t, vector<int>&sum)
{
    vector<int> s;
    for (int i = 0; i < t.size()-1; ++i)
    {
        if(sum.size() > 0 && find(sum.begin(), sum.end(), t[i] + t[i+1]) == sum.end())
            {
                return s;
            }
        s.push_back(t[i] + t[i+1]);
    }
    sort(s.begin(), s.end());
    return s;
}
int compare(vector<int>& t1, vector<int>& t2)
{
    for (int i=0; i<t1.size(); ++i)
    if (t1[i] != t2[i])return 0;
    return 1;
}
int main()
{
    int t;
    scanf("%d", &t);
    while (t--)
    {
        int n,x;
        scanf("%d", &n);
        list<int>per;
        for (int i = 0; i <n; i++)
        {
            scanf("%d", &x);
            per.push_front(x);
        }
        for (int i = 0; i <n; i++)
        {
            printf("%d ", per.front());
            per.pop_front();
        }
        printf("\n");
    }
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
vector<int> sum(vector<int>& t)
{
    vector<int> s;
    for (int i = 0; i < t.size()-1; ++i)
    {
        s.push_back(t[i] + t[i+1]);
    }
    sort(s.begin(), s.end());
    return s;
}
int compare(vector<int>& t1, vector<int>& t2)
{
    for (int i=0; i<t1.size(); ++i)
    if (t1[i] != t2[i])return 0;
    return 1;
}
int main()
{
    int t;
    scanf("%d", &t);
    while (t--)
    {
        int n,x;
        scanf("%d", &n);
        vector<int> res, initial, resSum, iniSum;
        for (int i =0; i < n; i++)
        {
            scanf("%d", &x);
            res.push_back(x);
            initial.push_back(i+1);
        }
        resSum = sum(res);
        do {
            iniSum = sum(initial);
            if (compare(iniSum, resSum) && !compare(initial, res))
                break;
        }while (next_permutation(initial.begin(), initial.begin() + n));
        for (int i = 0; i < n; i++)
            printf("%d ", initial[i]);
        printf("\n");
    }
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define rep(i,b) for(i=0;i<b;++i)
#define repp(i,a,b) for(i=a;i<b;++i)
#define endl "\n"
//#define LLONG_MAX 99999999999999
typedef long long int lli;
int main(){
    //ios_base::sync_with_stdio(false);
    //cin.tie(NULL);
    lli n,i,j,b,a,q,m;
    lli t=1;
    cin>>t;
    while(t--){
        cin>>n;
        vector<lli> v(n);
        rep(i,n)cin>>v[i];
        lli g=v[0];
        for(i=0;i+1<n;i+=2)swap(v[i],v[i+1]);
        rep(i,n)cout<<v[i]<<" ";
        cout<<endl;

    }

}


#include<bits/stdc++.h>
using namespace std;
#define rep(i,b) for(i=0;i<b;++i)
#define repp(i,a,b) for(i=a;i<b;++i)
#define endl "\n"
//#define LLONG_MAX 99999999999999
typedef long long int lli;
int main(){
    //ios_base::sync_with_stdio(false);
    //cin.tie(NULL);
    lli n,i,j,b,a,q,m;
    lli t=1;
    cin>>t;
    while(t--){
        cin>>n;
        vector<lli> v(n);
        rep(i,n)cin>>v[i];
        reverse(v.begin(),v.end());
        rep(i,n)cout<<v[i]<<" ";
        cout<<endl;

    }

}


#include<bits/stdc++.h>
using namespace std;
#define rep(i,b) for(i=0;i<b;++i)
#define repp(i,a,b) for(i=a;i<b;++i)
#define endl "\n"
//#define LLONG_MAX 99999999999999
typedef long long int lli;
int main(){
    //ios_base::sync_with_stdio(false);
    //cin.tie(NULL);
    lli n,i,j,b,a,q,m;
    lli t=1;
    cin>>t;
    while(t--){
        cin>>n;
        vector<lli> v(n);
        rep(i,n)cin>>v[i];
        swap(v[0],v[1]);
        rep(i,n)cout<<v[i]<<" ";
        cout<<endl;

    }

}


#include<bits/stdc++.h>
using namespace std;
#define rep(i,b) for(i=0;i<b;++i)
#define repp(i,a,b) for(i=a;i<b;++i)
#define endl "\n"
//#define LLONG_MAX 99999999999999
typedef long long int lli;
int main(){
    //ios_base::sync_with_stdio(false);
    //cin.tie(NULL);
    lli n,i,j,b,a,q,m;
    lli t=1;
    cin>>t;
    while(t--){
        cin>>n;
        vector<lli> v(n);
        rep(i,n)cin>>v[i];
        lli g=v[0];
        rep(i,n-1)v[i]=v[i+1];
        v[n-1]=g;
        rep(i,n)cout<<v[i]<<" ";
        cout<<endl;

    }

}


#include <bits/stdc++.h>

using namespace std;

void display(vector<int> a, int n){
    for(int i=0;i<n;i++) cout << a[i] << " ";
}

int main()
{   int inputs;
    cin>>inputs;
    while(inputs) {

        int n;
        cin >> n;

        vector<int> a(n);

        for(int i=0; i<n; i++){
            cin >> a[i];
        }
        reverse(a.begin(), a.end());
        display(a,n);

        inputs--;
    }
    return 0;
}


    #include <bits/stdc++.h>

    using namespace std;

    void display(vector<int> a, int n){
        for(int i=0;i<n;i++) cout << a[i] << " ";
        cout<< endl;
    }

    int main()
    {   int inputs;
        cin>>inputs;
        while(inputs) {

            int n;
            cin >> n;

            vector<int> a(n);

            for(int i=0; i<n; i++){
                cin >> a[i];
            }
            reverse(a.begin(), a.end());
            display(a,n);

            inputs--;
        }
        return 0;
    }


#include <bits/stdc++.h>

using namespace std;

//Display elements of the array
void display(vector<int> a, int n){
    for(int i=0;i<n;i++) cout << a[i] << " ";
    cout << endl;
}

vector<int> fingerPrint(vector<int> a, int n){
    vector<int> b(n-1);
    for(int i=0; i<n-1; i++){
            b[i] = a[i] + a[i+1];
        }
    sort(b.begin(), b.end());
    return b;
}

int main()
{   int inputs;
    cin>>inputs;
    while(inputs) {
        //Obtaining length of array
        int n;
        cin >> n;

        //Declaring a vector of integers
        vector<int> a(n);

        //Taking input of array of integers
        for(int i=0; i<n; i++){
            cin >> a[i];
        }
        vector<int> d(n);
        d = a;

        vector<int> c= fingerPrint(a, n);

        do{
            //Display the current permutation

            if (c == fingerPrint(a, n) && d != a){
                    //display(fingerPrint(a, n), n-1);
            //display(a,n);

            if ( a!= d) {
                display(a, n);
                break;
            }

            }

        }while(next_permutation(a.begin(), a.end())); //Generate next permutation till it is not lexicographically largest
        inputs--;
    }
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define aishik int main

//for(i=0;i<n;i++)

aishik(){
	ll t,n,m,i,j,z,k,q,sum,maxm,minm,flag,counter;
	cin>>t;
	while(t--){
	    cin>>n;
        ll p[n];
        for(i=0;i<n;i++){
            cin>>p[i];
        }
        swap(p[0],p[1]);
        for(i=0;i<n;i++){
            cout<<p[i]<<" ";
        }
        cout<<endl;
	}
	return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define aishik int main

//for(i=0;i<n;i++)

aishik(){
	ll t,n,m,i,j,z,k,q,sum,maxm,minm,flag,counter;
	cin>>t;
	while(t--){
	    cin>>n;
        ll p[n];
        for(i=0;i<n;i++){
            cin>>p[i];
        }
        if(n%2==0){
            for(i=0;i<n;i+=2){
                swap(p[i],p[i+1]);
            }
            for(i=0;i<n;i++){
                cout<<p[i]<<" ";
            }
            cout<<endl;
        }
        else{
            swap(p[0],p[1]);
            for(i=0;i<n;i++){
                cout<<p[i]<<" ";
            }
            cout<<endl;
        }
	}
	return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define aishik int main

//for(i=0;i<n;i++)

aishik(){
	ll t,n,m,i,j,z,k,q,sum,maxm,minm,flag,counter;
	cin>>t;
	while(t--){
	    cin>>n;
        ll p[n];
        for(i=0;i<n;i++){
            cin>>p[i];
        }
        if(n%2==0){
            for(i=0;i<n;i+=2){
                swap(p[i],p[i+1]);
            }
            for(i=0;i<n;i++){
                cout<<p[i]<<" ";
            }
            cout<<endl;
        }
        else{
            for(i=n/2;i<n;i++){
                cout<<p[i]<<" ";
            }
            for(i=0;i<n/2;i++){
                cout<<p[i]<<" ";
            }
            cout<<endl;
        }
	}
	return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define aishik int main

//for(i=0;i<n;i++)

aishik(){
	ll t,n,m,i,j,z,k,q,sum,maxm,minm,flag,counter;
	cin>>t;
	while(t--){
	    cin>>n;
        ll p[n];
        for(i=0;i<n;i++){
            cin>>p[i];
        }
        for(i=1;i<n;i++){
            cout<<p[i]<<" ";
        }
        cout<<p[0]<<endl;
	}
	return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define aishik int main

//for(i=0;i<n;i++)

aishik(){
	ll t,n,m,i,j,z,k,q,sum,maxm,minm,flag,counter;
	cin>>t;
	while(t--){
	    cin>>n;
        ll p[n];
        for(i=0;i<n;i++){
            cin>>p[i];
        }
        for(i=n-1;i>=0;i--){
            cout<<p[i]<<" ";
        }
        cout<<endl;
	}
	return 0;
}


#include<bits/stdc++.h>
#include <iostream>
using namespace std;

int main() {
	// your code goes here
	int t;
	cin>>t;
	while(t--)
	{
		long long n;
		cin>>n;
		long long a[n];
		vector<long long>v;
		for(long long i=0;i<n;i++)
		cin>>a[i];
		if(n%2==0)
		{
			for(long long i=0;i<n;i+=2)
			{
				long long temp=a[i];
				a[i]=a[i+1];
				a[i+1]=temp;
			}
			for(long long i=0;i<n;i++)
			cout<<a[i]<<" ";
			cout<<endl;
		}
		else
		{
			for(long long i=n/2;i<n;i++)
			{
				v.push_back(a[i]);
			}
			for(long long i=0;i<n/2;i++)
			v.push_back(a[i]);
			for(long long i=0;i<v.size();i++)
			cout<<v[i]<<" ";
			cout<<endl;
			v.clear();
		}
	}
	return 0;
}


#include<bits/stdc++.h>
#include <iostream>
using namespace std;

int main() {
	// your code goes here
	int t;
	cin>>t;
	while(t--)
	{
		int n;
		cin>>n;
		int a[n];
		for(int i=0;i<n;i++)
		cin>>a[i];
		for(int i=n-1;i>=0;i++)
		cout<<a[i]<<" ";
		cout<<endl;
	}
	return 0;
}


#include<bits/stdc++.h>
#include <iostream>
using namespace std;

int main() {
	// your code goes here
	int t;
	cin>>t;
	while(t--)
	{
		int n;
		cin>>n;
		int a[n];
		vector<int>v;
		for(int i=0;i<n;i++)
		cin>>a[i];
		if(n%2==0)
		{
			for(int i=0;i<n;i+=2)
			{
				int temp=a[i];
				a[i]=a[i+1];
				a[i+1]=temp;
			}
			for(int i=0;i<n;i++)
			cout<<a[i]<<" ";
			cout<<endl;
		}
		else
		{
			for(int i=n/2;i<n;i++)
			{
				v.push_back(a[i]);
			}
			for(int i=0;i<n/2;i++)
			v.push_back(a[i]);
			for(int i=0;i<v.size();i++)
			cout<<v[i]<<" ";
			cout<<endl;
		}
	}
	return 0;
}


#include<bits/stdc++.h>
#include <iostream>
using namespace std;

int main() {
	// your code goes here
	int t;
	cin>>t;
	while(t--)
	{
		int n;
		cin>>n;
		int a[n];
		for(int i=0;i<n;i++)
		cin>>a[i];
		for(int i=n-1;i>=0;i--)
		cout<<a[i]<<" ";
		cout<<endl;
	}
	return 0;
}


#include<bits/stdc++.h>
using namespace std;

int main(){
    int t;
    cin >> t;
    while(t--){
        int n;
        cin >> n;
        int arr[n];
        for(int i=0;i<n;i++){
            cin >> arr[i];
        }
        for(int i=0;i+1<n;i+=1){
            swap(arr[i],arr[i+1]);
        }
        for(int i=0;i<n;i++){
            cout << arr[i] << " ";
        }
        cout << endl;
    }
}


#include<bits/stdc++.h>
using namespace std;

int main(){
    int t;
    cin >> t;
    while(t--){
        int n;
        cin >> n;
        int arr[n];
        REP(i,0,n){
            cin >> arr[i];
        }
        sort(arr,arr+n);
        REP(i,0,n){
            cout << arr[i] << " ";
        }
        cout << endl;
    }
}


#include <bits/stdc++.h>
using namespace std;
void solve()
{
	int n,k;
		cin>>n>>k;
		long long a[n];
		long long l[n],tmp=0;
		for(int i=0;i<n;i++){
			cin>>a[i];
			if(a[i]%2 != 0){
				l[tmp]=i;
				tmp++;
			}
		}
		if(tmp==k)
		{
			cout<<"YES"<<endl;
			for(int i=1;i<k;i++)
			{
				cout<<l[i]<<" ";
			}
			cout<<n<<endl;
		}
		else if(tmp<k)
		{
			cout<<"NO"<<endl;
		}
		else{
			if(tmp%2 == k%2)
			{
				cout<<"YES"<<endl;
				for(int i=tmp-k+1;i<tmp;i++){
					cout<<l[i]<<" ";
				}
				cout<<n<<"\n";
			}
			else
			{
				cout<<"NO"<<"\n";
			}
		}
}
int main (){
	int t;
	cin>>t;
	while(t--){
		solve();
	}
	return 0;
}


#include <bits/stdc++.h>//Carefully Crafted by hetp111
using namespace std;
#define int long long
#define double long double
#define all(v) (v).begin(),(v).end()
#define vi vector<int>
#define pii pair<int,int>
#define prec(n) fixed<<setprecision(n)
#define MOD 1000000007
#define eps 1e-8
#define FASTER ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)
template<class A, class B> ostream& operator<<(ostream& out, const pair<A, B> &a){
    return out<<"("<<a.first<<","<<a.second<<")";}
template<class A> ostream& operator<<(ostream& out, const vector<A> &a){
	out<<"";for(auto it=a.begin();it!=a.end();it++){if(it!=a.begin())out<<" ";out<<*it;}out<<"";
	return out;}
template<class A, class B> istream& operator>>(istream& in, pair<A,B> &a){in>>a.first>>a.second;return in;}
template<class A> istream& operator>>(istream& in, vector<A> &a){for(A &i:a)in>>i;return in;}
//ifstream cinn("input.txt");ofstream coutt("output.txt");

signed main(){
    FASTER;
    int t;cin>>t;
    while(t--){
        int n,k;cin>>n>>k;
        vi v(n),oddindx;cin>>v;

        if(k==1){
            int asdf=0;
            for(int asdz:v){
                asdf+=asdz%2;
            }
            if(asdf%2){
                cout<<"YES\n"<<n;
            }else cout<<"NO";
            cout<<"\n";
            continue;
        }

        int i;
        for(i=0;i<n;i++){
            if(v[i]%2){
                oddindx.push_back(i+1);
            }
            if(oddindx.size()==k-1)break;
        }

        int odd=0;
        i++;
        for(;i<n;i++){
            odd+=(v[i]%2);
        }

        if(odd%2 && oddindx.size()==k-1){
            cout<<"YES\n";
            for(int asd:oddindx){
                cout<<asd<<" ";
            }
            cout<<n;
        }else cout<<"NO";

        cout<<"\n";
    }
}


#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define fast                                                                   \
  ios_base::sync_with_stdio(0);                                                \
  cin.tie(0);                                                                  \
  cout.tie(0);
#define lli long long int
#define pb push_back
// typedef tree<int, null_type, less<int>, rb_tree_tag,
// tree_order_statistics_node_update> pdbs;
using namespace __gnu_pbds;
using namespace std;
const int m=1e9+7;
int main() {
  fast;
  lli q,n,i,k;
  cin>>q;
  while(q--)
  {
    cin>>n>>k;
    lli c=0;
    lli a[n],s=0;
    for(i=0;i<n;i++)
    {
      cin>>a[i];
      s+=a[i];
      if(a[i]%2!=0)
      c++;
    }
    if(c<k)
    cout<<"NO\n";
    else
    {
      lli z=0;
      vector<lli> v;
      for(i=0;i<n&&k>1;i++)
      {
        if(a[i]%2!=0)
        {
          s-=a[i];
          k--;
          v.pb(i+1);
        }
      }if(s%2!=0)
      {
        cout<<"YES\n";
        for(i=0;i<v.size();i++)
        cout<<v[i]<<" ";
        cout<<n<<"\n";
      }
      else cout<<"NO\n";
    }
  }
  return 0;
}


#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
long long g,n,k,tot,a[200000+5];
int main()
{
	ios::sync_with_stdio(false);
	cin>>g;
	while(g--)
	{
		tot=0;
		cin>>n>>k;
		for(int i=1;i<=n;i++)
		{
			cin>>a[i];
			tot+=a[i]%2;
		}
		if((tot-k)%2==0&&tot>=k)
		{
			cout<<"YES"<<endl;
			tot=0;
			for(int i=1;i<=n;i++)
			{
				if(a[i]&1)tot++;
				if(tot==k)break;
				if(a[i]&1)cout<<i<<" ";
			}
			cout<<n<<endl;
		}
		else cout<<"NO"<<endl;
	}
	return 0;
}


#include<bits/stdc++.h>
using namespace std;

#define ll long long

int main()
{
    ll t;
    cin>>t;

    while(t--)
    {
        ll n,k;
        cin>>n>>k;

        ll arr[n+10],count=0,count2=0,x,y,z;
        vector<ll>v;
        for(int i=0; i<n; i++)
        {
            cin>>arr[i];

            if(arr[i]%2==1)
            {
                count++;
                v.push_back(i);
            }

            else
            {
                count2++;
            }
        }

        if(count<k)
        {
            cout<<"NO"<<endl;
        }

        else if(count==k)
        {
            cout<<"YES"<<endl;
                x=n/k;
                y=count-k;
                z=k-1;
                if(n%k!=0)
                {
                    x=x+1;
                }
                for(int i=0; i<n; i++)
                {
                    if(z==0)
                    {
                        break;
                    }
                    else if(arr[i]%2==1)
                    {
                        cout<<i+1<<" ";
                        z--;
                    }
                }
                cout<<n<<endl;

        }
        else if(count>k)
        {
            if(k%2==0 && count%2==0)
            {
                cout<<"YES"<<endl;
                x=n/k;
                y=count-k;
                z=k-1;
                if(n%k!=0)
                {
                    x=x+1;
                }
                for(int i=0; i<n; i++)
                {
                    if(z==0)
                    {
                        break;
                    }
                    else if(arr[i]%2==1)
                    {
                        cout<<i+1<<" ";
                        z--;
                    }
                }
                cout<<n<<endl;

            }

            if(k%2==1 && count%2==1)
            {
                cout<<"YES"<<endl;
                x=n/k;
                y=count-k;
                z=k-1;
                if(n%k!=0)
                {
                    x=x+1;
                }
                for(int i=0; i<n; i++)
                {
                    if(z==0)
                    {
                        break;
                    }
                    else if(arr[i]%2==1)
                    {
                        cout<<i+1<<" ";
                        z--;
                    }
                }
                cout<<n<<endl;

            }

            if(k%2==0 && count%2==1)
            {
                cout<<"NO"<<endl;

            }

            if(k%2==1 && count%2==0)
            {
                cout<<"NO"<<endl;

            }
        }

    }
}


#include<stdio.h>
#include<string.h>
int map[200007];
int r[200007];
int main()
{
	int q;
	scanf("%d",&q);
	while(q--)
	{
		int n,t;
		scanf("%d%d",&n,&t);
		int a=0;
		for(int i=1;i<=n;i++)
		{
			scanf("%d",&map[i]);
			if(map[i]%2!=0)
			{
				r[++a]=i;
			}
		}
		if(a==t)
		{
			printf("YES\n");
			for(int i=1;i<a;i++)
			{
				printf("%d ",r[i]);
			}
			printf("%d\n",n);
		}
		else if(a<t)
		{
			printf("NO\n");
		}
		else
        {
            if((a-t)%2==0)
            {
                printf("YES\n");
                for(int i=1;i<t;i++)
                {
                    printf("%d ",r[i]);
                }
                printf("%d\n",n);
            }
            else
            {
                printf("NO\n");
            }
        }
	}
	return 0;
}


#include <bits/stdc++.h>
using namespace std;

	int main() {
		ios::sync_with_stdio(0);
		cin.tie(0);
long long q;
cin>>q;
long long arr[1000000];
while(q--)
{
	long long n;
	cin>>n;
	long long k;
	cin>>k;
	k--;
	long long sum=0;
	int kk=k+1;
for(int i=0;i<n;i++)
{
	cin>>arr[i];
	if(arr[i]%2==1&&k>0)
	{
		k--;
	}
	else
	{
		sum+=arr[i];
	}
}
if(sum%2==1)
{
	cout<<"YES"<<endl;
	for(int i=0;i<n&&kk>1;i++)
	{
		if(arr[i]%2==1)
		{
			cout<<i+1<<" ";
			kk--;
		}
	}
	cout<<n;
	cout<<endl;
}
else cout<<"NO"<<endl;

}
	return 0;
	}


#include <bits/stdc++.h>
using namespace std;
int a[200005],n,k,m,dem,f[200005];
void init()
{
    freopen("cf.inp","r",stdin);
    freopen("cf.out","w",stdout);
}
void push(int u)
{
    dem++;
    f[dem]=u;
}
void xuli()
{
    cin >> n >> k;
    dem=0;
    long long kq=0;
    int i=1;
    for (int i=1;i<=n;i++)  scanf("%d",&a[i]);
    while (k>1&&i<=n){
        kq+=a[i];
        if (kq%2){
            kq=0;k--;
            push(i);
        }
        i++;
    }
    if (k!=1) printf("NO\n");
    else{
        kq=0;
        for (int j=f[dem]+1;j<=n;j++) kq+=a[j];
        if (kq%2==1){
            printf("YES\n");
            for (int i=1;i<=dem;i++) printf("%d ",f[i]);
            printf("%d\n",n);
        }
        else printf("NO\n");
    }
}
int main()
{
    //init();
    cin >> m;
    while (m--) xuli();
}


#include <bits/stdc++.h>
#define ll long long int

using namespace std;
void local()
{
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);
	// freopen("input.in", "r", stdin);
	// freopen("output.out", "w", stdout);
}

int main()
{
    int q;
    cin>>q;
    while(q--)
    {
        int n,k;
        cin>>n>>k;
        vector<int> odds;
        int temp;
        for(int i=0;i<n;i++) {
            cin>>temp;
            if(temp%2!=0) odds.push_back(i+1);
        }
        if(odds.size()<k || (odds.size()-k)%2!=0) cout<<"NO"<<endl;
        else
        {
            cout<<"YES"<<endl;
            for(int i=0;i<k-1;i++) cout<<odds[i]<<" ";
            cout<<n<<endl;
        }
    }

}


#include <iostream>
#include <vector>

using namespace std;

int main()
{
    long long int i,j,n,m,m1,sum=0;
    cin>>n;
    vector<int> v;
    while(n)
    {
       n--;
       cin>>m>>m1;
       int a[m];
       for(i=0;i<m;i++)
       {
           cin>>a[i];
       }
       for(i=0;i<m;i++)
       {
         sum=sum+a[i];
        // cout<<v.size()<<" ja"<<m1<<endl;
         if(v.size()<m1-1)
         {
         if(sum%2==1)
         {
            v.push_back(i+1);
            sum=0;
         }
         }

       }
       if(sum!=0)
       {
           if(sum%2==1)
           {
               v.push_back(m);
               sum=0;
           }
       }
       if(v.size()==m1)
       {
           cout<<"YES"<<endl;
           for(i=0;i<v.size();i++)
           {
               cout<<v[i]<<" ";
           }
           cout<<endl;
       }
       else
       {
           cout<<"NO"<<endl;
       }
       v.clear();
       sum=0;
    }

    return 0;
}


#include<bits/stdc++.h>
#include<string>
#include <vector>
#define ll long long int
using namespace std;

int main()
{
  ll n,k,q;
  cin >> q;
  for (int i = 0 ; i<q;i++)
  {
      ll sum=0,c=0;
      cin >> n >> k;
   vector <int> v(n);
   vector <int> suma;
            for (int j = 0 ; j<n;j++)
        {
            cin >> v[j];
            sum=sum+v[j];
            if (sum%2==1 && c<k-1)
            {
                suma.push_back(j+1);
                sum=0;
                c++;
            }

        }
        if (c!=k-1 || sum%2!=1)
        cout << "NO" <<endl;
        else
        {
            cout << "YES" << endl;
            suma.push_back(n);
            for (int j = 0 ; j<c+1;j++)
                 cout << suma[j] << ' ';
                 cout << endl;
        }

  }

return 0;
}


#include <bits/stdc++.h>
using namespace std;
const double pi=2*acos(0.0);
double inff=1.0/0.0;
#define ll           long long int
#define inf          10000000000
#define MOD          1000000007
#define pb           push_back
#define sz(x)        (int)x.size()
#define mp           make_pair
#define lbd          lower_bound
#define ubd          upper_bound
#define ipair        pair<ll,ll>
#define all(v)       v.begin(),v.end()
#define watch(x)     cout<<(#x)<<" is "<<(x)<<endl;
#define rep(a,b,c)   for(a=(int)b;a<(int)c;a++)
#define bac(a,b,c)   for(a=(int)b;a>=(int)c;a--)
#define se           second
#define f            first
#define ios          ios::sync_with_stdio(false), cout.tie(0), cin.tie(0);
#define mem(a,val)   memset(a,val,sizeof a)
#define endl         "\n"
#define mxn          20111
#define vi           vector<ll>
#define vii          vector<ipair>
#define si           set<ll>
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
/*Variables Start*/
ll x,y,n,i,z,j,k,w,u,q,t,m;
vi v;
/*Variables End*/
void solve()
{
    cin>>n>>k;
    v.clear();
    w=0;q=0;
    rep(i,1,n+1)
    {
        cin>>x;
        w+=x;
        if(w&1)
        {
            w=0;
            q++;
            v.pb(i);
        }
    }
    if(q<k or (q-k)%2)
    {
        cout<<"NO"<<endl;
    }
    else
    {
        cout<<"YES"<<endl;
        rep(i,1,k)
        {
            cout<<v[i-1]<<" ";
        }
        cout<<n<<endl;
    }
}
int main()
{
    ios;
    int TESTS=1;
    cin>>TESTS;
    while(TESTS--)
    {
        solve();
    }
}


#include <bits/stdc++.h>

#define fr first
#define sc second
#define pb push_back
#define mk make_pair
#define all(s) s.begin(),s.end()

using namespace std;

const int N = (2e5 + 12);
const int mod = (1e9 + 7);

int a[N];
void solve(){
    int n, k, sum = 0;
    cin >> n >> k;
    for(int i = 1;i <= n; i++){
        scanf("%d", &a[i]);
        a[i] %= 2;
        sum += a[i];
    }
    if(sum < k || (sum - k) % 2 == 1){
        cout << "NO";
    }
    else{
        cout << "YES\n";
        if((sum - k) % 2 == 0){
            for(int i = 1;i <= n; i++){
                if(k == 1){
                    break;
                }
                if(a[i] % 2 == 1){
                    printf("%d ", i);
                    k--;
                }
            }cout<< n;
        }

        else{
            int f = 0;
            for(int i = 1;i <= n; i++){
                if(k == 1){
                    break;
                }
                if(a[i] % 2 == 1){
                    if(f >= 2){
                        printf("%d ", i);
                        k--;
                    }
                    f++;
                }
            }

        }

    }
}
main()
{
    int t;
    cin >> t;
    while(t--){
        solve();
        cout << endl;
    }
}


#define ll long long int
#define ull unsigned long long int
#define vi vector<int>
#define vll vector<ll>
#define vvi vector < vi >
#define pii pair<int,int>
#define pll pair<long long, long long>
#define mod 1000000007
#define max 1000000000000000001;
#define ALL(c) (c).begin(),(c).end()
#define MP(x,y) make_pair(x,y)
#define MEM(a,val) memset(a,val,sizeof(a))
#include <bits/stdc++.h>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstring>
#include <chrono>
#include <complex>

using namespace std;
int main(int argc, char const *argv[]) {
	std::ios::sync_with_stdio(false);
	int T;
	cin>>T;
	while(T--)
	{
    int n,k;
    cin>>n>>k;
    int arr[n];
    for(int i=0;i<n;i++)
      cin>>arr[i];
    int tc=0;
    for(int i=0;i<n;i++)
      if(arr[i]%2==1)
        tc++;
    if((tc-k)<0||(tc-k)%2!=0){
      cout<<"NO\n";
    }
    else{
      cout<<"YES\n";
      int x=(tc-k);
      int r=x+1;
      int i=0;
      if(k!=1){
        for(;i<n;i++){
          if(arr[i]%2!=0){
            r--;
          }
          if(r==0){
            cout<<i+1<<' ';
            break;
          }
        }
      }
      k-=1;
      i+=1;
      if(k!=0){
        for(;i<n;i++){
          if(arr[i]%2!=0&&k!=1){
            cout<<i+1<<' ';
            k--;
          }
        }
      }
      cout<<n<<'\n';
    }
	}
	return 0;
}


#include <bits/stdc++.h>
using namespace std;
long long n, i, a, b, c, s, q, m, t, o, d[2000001];
int main() {
    cin >> q;
    while(q) {
        q--;
        cin >> n >> m;
        for (i = 0; i < n; i++) {
            cin >> a;
            if (m == 1 and a % 2 == 1) s++;
            if (a % 2 == 1 and m > 1) {
                m--;
                d[t] = i + 1;
                t++;
            }
        }
        if (m == 1) {
            if (s % 2 == 1) {
                cout << "YES" << endl;
                d[t] = n;
                for (i = 0; i <= t; i++) cout << d[i] << " ", d[i] = 0;
                cout << endl;
            } else cout << "NO" << endl;
        } else cout << "NO" << endl;
        s = 0;
        t = 0;
    }
}


#include<bits/stdc++.h>
using namespace std;
#define int long long
int32_t main(){
	int q,n,k;
	cin>>q;
	while(q--){
		cin>>n>>k;
		int a[n];
		for(int i=0;i<n;i++)
			cin>>a[i];
		int sum=0;
		vector<int> ans;
		for(int i=0;i<n;i++){
			sum+=a[i];
			if(sum%2){
				ans.push_back(i+1);
				sum=0;
			}
		}
		if(ans.size()<k){
			cout<<"NO"<<endl;
		}
		else{
			if((ans.size()-k)%2){
				cout<<"NO"<<endl;
			}
			else{
				cout<<"YES"<<endl;
				for(int i=0;i<k-1;i++){
					cout<<ans[i]<<" ";
				}
				cout<<n<<endl;
			}
		}
	}
}


#include<bits/stdc++.h>
#define YES cout<<"YES"<<"\n"
#define NO cout<<"NO"<<"\n"
#define Yes cout<<"Yes"<<"\n"
#define No cout<<"No"<<"\n"
using namespace std;
typedef pair<int ,int > pa;
int n;
int k;
int a[(int)1e6];
int r[(int)1e5];
long long luu[(int)1e6];
long long sum=0;
int dem=0;
int main(){

	ios::sync_with_stdio(false);
  	cin.tie(0);
	int q;
	cin>>q;
	while(q--)
	{
		dem=0;
			cin>>n>>k;
			sum=0;
	for(int i=1 ;i<= n; i++)
	{
		cin>>a[i];
		sum+=a[i];
		luu[i]=sum;
	}
	if(k%2==0 && sum%2!=0)
	{
		cout<<"NO"<<'\n';

	}
	else if(k%2==1 && sum%2!=1)
	{
		cout<<"NO"<<'\n';

	}
	else
	{

//	cout<<'\n';

	luu[0]=0;
	for(int i=1 ;i <= n ;i++)
	{
		if(dem%2==0)
		{
			if(luu[i]%2==1)
			{
				dem++;
				r[dem]=i;
			}

		}
		else
		{
			if(luu[i]%2==0)
			{
				dem++;
				r[dem]=i;
			}

		}
	}
	r[k]=n;
	if(dem>=k)
	{
		YES;
		for(int i=1 ;i <= k ; i++)
		cout<<r[i]<<" ";
		cout<<'\n';
	}
	else
	{
		NO;
	}
	}

	}

}


#include<bits/stdc++.h>
using namespace std;
int main(){
	int q;
	cin>>q;
	while(q--){
		int n,k;
		cin>>n>>k;
		int a[n];
		for(int i=0;i<n;i++){
			cin>>a[i];
		}
		int f=0;
		for(int i=0;i<n;i++){
			if(a[i]%2!=0){
				f++;
			}
		}
		if((f-k)%2==0 && f-k>=0){
			cout<<"YES"<<endl;
			for(int i=0;i<n;i++){
				if(a[i]%2!=0 && k>1){
					cout<<i+1<<" ";
					k--;
				}
			}
			cout<<n<<endl;
		}
		else
			cout<<"NO"<<endl;
	}
	return 0;
}


#include<iostream>
#define data   long long int
#define pb push_back
using namespace std;
// memset(arrray,val,sizeof(array));
void init(){
   ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
}
int main()
{
    init();
    long long int q;
    cin>>q;
    cout<<"\n";
    while(q--)
    {
     long long int n,i,t,s,k;
	 long long int a[200005];
	 cin>>n;
	 cout<<" ";
	 cin>>k;
	 cout<<"\n";
	 s=0;
	 for(i=1;i<=n;i++)
	 {
	  cin>>a[i];
	  if(a[i]%2==1)
	   s++;
	  cout<<" ";
	 }
	 t=1;
	 cout<<"\n";
	 if(s>=k && (s-k+1)%2==1)
	 {
	  cout<<"YES";
	  cout<<"\n";
	  for(i=1;i<=n;i++)
	  {
	   if(a[i]%2==1 && t<=(k-1))
	   {
	   	cout<<i;
	   	cout<<" ";
	   	t++;
	   }
	  }
	  cout<<n<<" ";
	 }
	 else
	 {
	  cout<<"NO";
	 }
	 cout<<"\n";
	}
}


#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
#define endl "\n"
#define fi first
#define sec second
#define pb push_back
#define test cout<<"debuged\n";
#define INF ll(1e18)
#define MOD 1000000007
#define si 1000000
#define debug(x) cout<<x<<"\n";
#define pll pair<ll,ll>
#define all(v) v.begin(),v.end()

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    #ifndef ONLINE_JUDGE
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    #endif

    ll t;
    cin>>t;
    while(t--)
    {
        ll n,k,c=0;
        cin>>n>>k;
        vector<ll> v(n),d;
        d.pb(0);
            for(auto &x:v)
            {
                cin>>x;
                if(x%2==1)
                {
                    c++;
                }
                d.pb(c);
            }
            if(k==1 and d[n]%2==1)
            {
                cout<<"YES\n";
                cout<<n<<endl;
                continue;
            }
            if(k==1 and d[n]%2==0)
            {
                cout<<"NO\n";
                continue;
            }

            if(k>d[n])
            {
                cout<<"NO\n";
                continue;
            }
        k--;
        bool chk=false;
        vector<ll> ans;
        ll cu=0;
        for(ll i=1;i<=n;i++)
        {
            if(k==0)
            {
                break;
            }
            if(d[i]!=cu)
            {
                k--;
                cu=d[i];
                ans.pb(i);
            }
        }
        if(ans[(ans.size()-1)]!=n)
            ans.pb(n);
        for(ll j=0;j<ans.size();j++)
        {
            ll a,b;
            if(j==0)
                a=0;
            else
                a=d[(ans[j-1])];
                b=d[ans[j]];
                //cout<<a<<" "<<b<<endl;
                if((b-a)%2==0)
                {
                    chk=true;
                    break;
                }
        }
        if(chk)
        {
            cout<<"NO\n";
        }
        else
        {
            cout<<"YES\n";
            for(ll i=0;i<ans.size();i++)
                cout<<ans[i]<<" ";
            cout<<endl;
        }

    }

}


#include <bits/stdc++.h>
#define FAST ios_base::sync_with_stdio(false);
#define FO cout.tie(NULL);
#define FI cin.tie(NULL);
#define IN cin>>
#define OUT cout<<
#define ll long long int
#define loop(i,a,n) for(long long int i=a; i<n; i++)
#define rloop(i,a,n) for(long long int i=a; i>=n; i--)
#define endl "\n";
#define pb push_back
#define mp make_pair
#define ld long double
#define vll vector<long long int>
#define pll pair<long long int, long long int>
#define stkll stack<ll>
#define qll queue<ll>
#define pqll priority_queue<ll>
using namespace std;
int main()
{
    FAST
    FO
    FI
    ll t;
    IN t;
    while(t--)
    {
    	ll n,k;
    	IN n>>k;
	    ll count=0;
	    ll a[n];
	    loop(i,0,n)
	    {
	    	IN a[i];
	        if(a[i]%2==1)
	        {
	        	count++;
	        }
	    }
	    count-=k;
	    if(count<0 || count%2==1)
	    {
	        OUT  "NO"<<endl
	    }
	    else
	    {
	        OUT "YES"<<endl
	        k--;
	        for(ll i=0; k; i++)
	        {
	            if(a[i]%2==1)
	            {
	                OUT i+1<<" ";
	                k--;
	            }
	        }
	        OUT n<<endl
	    }
	}
    return 0;
}


#include<iostream>
using namespace std;
int number[1000000] = {};
int table[1000000] = {};
int main(){
    int q;cin>>q;
    while(q--){
        int n,k;
        cin>>n>>k;
        int odd = 0;
        for(int i=0;i<n;i++){
            cin>>number[i];
            if(number[i]&1){
                odd++;
                table[i] = 1;
            }
        }
        int flag = odd-k;
        if(odd>=k&&flag%2==0){
            cout<<"YES"<<endl;
            k--;
            for(int i=0;i<n-1;i++){
                if(table[i]&&k){
                    cout<<i+1<<" ";
                    k--;
                }
            }
            cout<<n<<endl;
        }
        else{
            cout<<"NO"<<endl;
        }
        for (int i = 0; i < n; ++i)
        {
            table[i] =0;
            number[i] = 0;
        }
    }
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
int main() {
int t;
cin>>t;
while(t){
    int n,k,odd=0,even=0,p=0,z;
    cin>>n>>k;
    int a[n];
    for(int i=0;i<n;i++){
        cin>>a[i];
        if(a[i]%2==0) even++;
        else odd++;
    }
    z=odd-k-1;
    if(odd>=k && z%2!=0){
        cout<<"YES"<<endl;
        for(int i=0;i<n;i++){
            if(a[i]%2!=0) {
                p++;
                if(p==k) break;
                cout<<i+1<<" ";

                }
        }
        cout<<n<<endl;
        }
    else cout<<"NO"<<endl;
    t--;
    }
}


#include<bits/stdc++.h>
using namespace std;
long long ar[200010];
int main()
{
    long long q;
    cin>>q;
    q++;
    while(q-->1)
    {
        long long n,k,le=0,le1=0;
        cin>>n>>k;
        for(int i=0;i<n;i++)
        {
            long long a;
            cin>>a;
            if(a%2==1)
            {
                le++;
                ar[i]=q;
            }
        }
        for(int i=0;i<n;i++)
        {
            if(ar[i]==q)
            {
                le1++;
                if(le1==le)
                {
                    ar[i]=0;
                    ar[n-1]=q;
                }
            }
        }
        if(le<k)
        {
            cout<<"NO\n";
            continue;
        }
        if(le%2!=k%2)
        {
            cout<<"NO\n";
            continue;
        }
        cout<<"YES\n";
        if(le%2==k%2)
        {
            for(int i=0;i<n;i++)
            {

                if(le>k&&ar[i]==q)
                {
                    le-=1;
                    continue;
                }
                if(le==k&&ar[i]==q)
                {
                    cout<<i+1<<" ";
                }
            }
            cout<<"\n";
        }
    }
}


#include <bits/stdc++.h>
using namespace std;
int main()
{
   int q;
    cin>>q;
    while(q--){
        int n,k;
        cin>>n>>k;
        long long a[n+1];
        for(int i=1;i<=n;i++)
            cin>>a[i];
        long long sum=0;
        int count=0;
        vector <int> ind;
        for(int i=1;i<=n;i++){
            sum+=a[i];
       //    cout<<sum<<endl;
            if(sum%2==1){
                ind.push_back(i);
               // cout<<sum<<endl;
                sum=0;
                count+=1;
            }
        }
        //cout<<endl;
       // cout<<count<<endl;
        if(count<k){
            cout<<"NO"<<endl;
        }
        //else if(count==k){
          //  cout<<"YES"<<endl;
           // for(int i=0;i<ind.size();i++)
             //   cout<<ind[i]<<" ";
            //cout<<endl;
        //}
        else{
            if((count-k)%2==0){
            cout<<"YES"<<endl;
           // cout<<k<<endl;
            for(int i=0;i<k-1;i++)
                cout<<ind[i]<<" ";
            cout<<n<<endl;
            }
            else
                cout<<"NO"<<endl;
       }
    }
        return 0;
}


#include<bits/stdc++.h>

using namespace std;

int main(){

    int t;
    cin>>t;
    while(t--){
        long long n,k;

        cin>>n>>k;
        long long a[n],c=0;
        for(long long i=0;i<n;i++){
            cin>>a[i];
            if(a[i]%2==1)
            c++;
        }

        long long x=c-k;

        if((x)%2==1||c<k)
        cout<<"NO"<<endl;
        else{
            cout<<"YES"<<endl;
            long long z=0,i,pri=0;

            for(i=0;i<n&&pri!=k-1;i++){
                if(a[i]%2==1)
                z++;
                if(z==(1+x)){
                    cout<<i+1<<" ";
                    pri++;
                    break;
                }
            }
            i++;
            for(;pri!=k-1;i++)
            if(a[i]%2==1){
            cout<<i+1<<" ";
            pri++;
            }

            cout<<n;

            cout<<endl;
        }

    }

    return 0;
}


#include <bits/stdc++.h>
using namespace std;

int main() {
	int t;
	cin>>t;
	while(t--) {
	    int i,j,k,l,m,n;
	    cin>>n>>k;
	    int a[n];
	    int oddCount = 0;
	    for(i=0;i<n;i++) {cin>>a[i];
	        if(a[i]%2!=0) oddCount++;
	    }

	    if(oddCount<k) {
	        cout<<"NO\n";
	    }
	    else {
	        int cnt = 0;
	        if((oddCount-k)%2==0) {
	            cout<<"YES\n";
	            for(i=0;i<n;i++) {
	                if(cnt == n-1) break;
	                if(a[i]%2!=0 && cnt!=k-1)  {cout<<i+1<<" "; cnt++; }

	            }
	            cout<<n;
	            cout<<endl;
	        }
	        else cout<<"NO\n";
	    }

	}
	return 0;
}


#include <bits/stdc++.h>
#define N 300005

using namespace std;

int n,k;
vector<int> res;
long long s[N];

int main()
{
    int q;
    #ifndef ONLINE_JUDGE
    freopen("t.inp","r",stdin);
    freopen("t.out","w",stdout);
    #endif // ONLINE_JUDGE
    cin>>q;
    while (q--) {
        cin>>n>>k;
        res.clear();
        long long x;bool ok=1;
        for (int i=0;i<=n;i++) s[i]=0;
        for (int i=1;i<=n;i++) {
            cin>>x;
            s[i]=s[i-1]+x;
        }
        int j=0;
        for (int i=1;i<=n;i++) {
             if (k==1) {
                k--;
                if ((s[n]-s[j])%2==0) {
                    ok=false;
                    break;
                }
                else {
                    res.push_back(n);
                    break;
                }
            }
            if ((s[i]-s[j])%2) {
                res.push_back(i);
                j=i;
                k--;
            }
        }
        if (ok && k==0) {
            cout<<"YES\n";
            for (int v:res) cout<<v<<" ";cout<<"\n";
        }
        else {
            cout<<"NO\n";
        }
    }
    return 0;
}


#include <iostream>
#include <algorithm>
#include <cmath>
#include <stdio.h>
#include <cstring>
#include <cstdlib>
#include <string>
#include <cstring>
#include <stdlib.h>

using namespace std;

long long a[1000000];
long long sum[1000000];
long long vis[1000000];
int main()
{
	int q;
	cin >> q;
	int n, k;
	int flag;
	while (q--)
	{
		cin >> n >> k;
		if (k == 1)
		{
			long long temp = 0;
			for (int i = 1; i <= n; i++)
			{
				scanf("%lld", &a[i]);
				temp += a[i];
			}
			if (temp % 2)
				cout << "YES" << endl << n << endl;
			else
				cout << "NO" << endl;

			continue;
		}
		for (int i = 0; i <= k; i++)
			sum[i] = 0;
		for (int i = 1; i <= n; i++)
		{
			scanf("%lld", &a[i]);
		}
		int kk = 1, i;
		for (i = 1; i <= n; i++)
		{
			sum[kk] += a[i];
			if (sum[kk] % 2)
			{
				vis[kk] = i;
				kk++;
			}
			if (kk == k)
			{
				break;
			}
		}
		for (int j = i + 1; j <= n; j++)
		{
			sum[kk] += a[j];
		}
		vis[kk] = n;

		flag = 0;
		if (sum[k] % 2 == 0)	cout << "NO" << endl;
		else
		{
			cout << "YES" << endl;
			for (int i = 1; i <= k; i++)
			{
				if (flag)
				{
					cout << " " << vis[i];
				}
				else
				{
					flag = 1;
					cout << vis[i];
				}
			}
			cout << endl;
		}

	}

//	freopen("CON", "r", stdin);
//	system("pause");
	return 0;
}


#include<bits/stdc++.h>
using namespace std;

void solve()
{
  long long int n,k;
  cin>>n>>k;

  long long int a[n],i,te=0,diff,b[k],p,l,j,temp;

  for(i=1;i<=n;i++)
  {
    cin>>a[i];
    if(a[i]%2!=0)
      te++;
  }

  if(te<k)
    cout<<"NO"<<endl;
  else
  {
    diff=te-k;
    if(diff%2!=0)
      cout<<"NO"<<endl;
    else
    {
      p=diff+1;
      i=1;

      while(1)
      {
        if(a[i]%2!=0)
          p--;

        if(p==0)
          break;

        i++;
      }

      b[0]=i;
      l=1;
      b[k-1]=n;

      temp=i+1;

      for(j=temp;j<=n;j++)
      {
        if(l==(k-1))
          break;

        if(a[j]%2!=0)
        {
          b[l]=j;
          l++;
        }
      }

      cout<<"YES"<<endl;

      for(i=0;i<k;i++)
        cout<<b[i]<<" ";

      cout<<endl;
    }
  }
}

int main()
{
  long long int q;
  cin>>q;

  while(q--)
    solve();

return 0;
}


#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[200005];
int T;
bool ji[200005];
int main(){
    scanf("%d",&T);
    a[0]=0;
    while(T--){
      int n,k;
      int cnt=0;
      memset(ji,false,sizeof(ji));
      scanf("%d%d",&n,&k);
      for(int i=1;i<=n;i++){
        long long tmp;
        scanf("%lld",&tmp);
        a[i]=a[i-1]+tmp;
        if(a[i]%2==1){ji[i]=true;}
        if(i!=1&&(ji[i]!=ji[i-1])){cnt++;}
      }
      if((k%2==0&&ji[n]==true)||(k%2==1&&ji[n]==false)||(cnt<(k-1))){printf("NO\n");continue;}
      int index=1;
      bool findou=false;
      vector<int> aa;
      for(int j=0;j<k-1;j++){
        for(;index<=n;index++){
            if(!findou&&ji[index]==true) {aa.push_back(index);findou=true;break;}
            else if(findou&&ji[index]==false) {aa.push_back(index);findou=false;break;}
        }
      }
      if(aa.size()==k-1){
      printf("YES\n");
      for(int i=0;i<k-1;i++){
        printf("%d ",aa[i]);
      }
      printf("%d\n",n);
      }
      else printf("NO\n");
}
    return 0;
}


#define pb push_back
#define F first
#define S second
#define sz size()
#define ll long long

#include <bits/stdc++.h>

using namespace std;
const ll mxn = 10e5 + 10e5 + 20;
ll q, n, k, ps, t;
bool a[mxn];
bool c[mxn];
vector <ll> ans[mxn] ;
int main()
{
	ios_base::sync_with_stdio(0);
	cin >> q;
	for (int i = 0; i < q; i++)
    {
        cin >> n >> k;
        ps = 0;
        fill (a,a+n+n+20,0);
        for (int j = 0; j<n; j++)
        {
            cin >> t;
            a[j] = (t%2);
            ps += a[j] ;
        }
        if (ps >= k && ((ps%2) == (k%2)))
        {
            c[i] = 1;
            for (int j = 0; j < n && ans[i].sz < k-1; j++)
               if (a[j])
                    ans[i].pb(j+1);
            ans[i].pb(n);
        }
    }
    for (int i = 0; i < q; i++)
    {
        if (c[i])
        {
            cout << "YES" << endl;
            for (int j = 0; j < ans[i].sz; j++)
                cout << ans[i][j] << " " ;
            cout << endl;
        }
        else
        {
            cout << "NO" << endl;
        }
    }
}


#include<bits/stdc++.h>
using namespace std;
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
		int n,k;
		cin>>n>>k;
		int o=0;
		int a[n];
		vector<int>v;
		for(int i=0;i<n;i++)
		{
			cin>>a[i];
			if(a[i]&1)
			o++,v.push_back(i+1);
		}
		int x=o%k,y=o/k;
		if((k==1&&y%2==0)||y==0)
		cout<<"NO"<<endl;
		else
		if((o-k+1)%2==0)
		{
			cout<<"NO"<<endl;
		}
		else
		{

		cout<<"YES"<<endl;
		for(int i=0;i<k-1;i++)
		cout<<v[i]<<" ";
		cout<<n<<endl;
}

	}
}


#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
#include <queue>
#include <cmath>
#include <map>
#include <bitset>
using namespace std;

int main(){
    int T; scanf("%d", &T);
    vector<int> ans;
    while(T--){
        int n,k;
        scanf("%d%d", &n, &k);int k0 = 0;
        ans.clear();
        for(int i = 1; i <= n; ++i){
            int x;
            scanf("%d", &x);
            if(x%2){
                k0++;
                ans.push_back(i);
            }
        }
        if(k0 >= k && ((k0-k)%2)==0){
            printf("YES\n");
            for(int i = 0; i < k-1; ++i) printf("%d ", ans[i]);
            printf("%d\n", n);
        }
        else printf("NO\n");
    }
    return 0;
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
    long long t;
    cin>>t;

    while(t--)
    {
        long long  n,k,count=0;
        cin>>n>>k;

        long long arr[n+10];
        for(int i=1; i<=n; i++)
        {
            cin>>arr[i];

            if(arr[i]%2==1)
            {
                count++;
            }

        }

        int p,q,r;
        if(count<k)
        {
            cout<<"NO"<<endl;
        }

        else if(count>k)
        {
            if(k%2==0 && count%2==0)
            {
                cout<<"YES"<<endl;
                p=n/k;

                q=k-1;
                if(n%k!=0)
                {
                    p=p+1;
                }
                for(int i=1; i<=n; i++)
                {
                    if(q==0)
                    {
                        break;
                    }
                    else if(arr[i]%2==1)
                    {
                        cout<<i<<" ";
                        q--;
                    }
                }
                cout<<n<<endl;

            }

            if(k%2==1 && count%2==1)
            {
                cout<<"YES"<<endl;
                p=n/k;
                q=k-1;
                if(n%k!=0)
                {
                    p=p+1;
                }
                for(int i=1; i<=n; i++)
                {
                    if(q==0)
                    {
                        break;
                    }
                    else if(arr[i]%2==1)
                    {
                        cout<<i<<" ";
                        q--;
                    }
                }
                cout<<n<<endl;

            }

            if(k%2==0 && count%2==1)
            {
                cout<<"NO"<<endl;

            }

            if(k%2==1 && count%2==0)
            {
                cout<<"NO"<<endl;

            }
        }

        else if(count==k)
        {
            cout<<"YES"<<endl;
            p=n/k;
            q=k-1;
            if(n%k!=0)
            {
                p=p+1;
            }
            for(int i=1; i<=n; i++)
            {
                if(q==0)
                {
                    break;
                }
                else if(arr[i]%2==1)
                {
                    cout<<i<<" ";
                    q--;
                }
            }
            cout<<n<<endl;

        }

    }
}


#include <bits/stdc++.h>
#include <stdbool.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv) {
	int q,i,j,n,k,num,d;
	cin>>q;
	for(i=1;i<=q;i++)
	{
		cin>>n>>k;
		bool arr[n]{false};d=0;
		for(j=1;j<=n;j++)
		{
			cin>>num;
			if(num%2==1)
			{
				d++;
				arr[j]=true;
			}
		}
		if((d>=k)&((d-k)%2==0))
		{
			cout<<"YES "<<endl;
			for(j=1;j<=n;j++)
			 {
			  if (arr[j]==true && k>1)
			 {
			 	cout<<j<<" ";
			 	k=k-1;
			 }
			 if(k=1)
			 {
			 cout<<n<<endl;
			 break;
			 }
		     }
		}
		else cout<<"NO"<<endl;
	}
	return 0;
}


#include<bits/stdc++.h>
#define ll long long
#define F(i,a,b) for(int i=a;i<=b;i++)
ll a[200005];
ll n,k,q;
ll b[200005];
using namespace std;
int main()
{
    cin>>q;
    b[0]=0;
    F(i,1,q)
    {
        cin>>n>>k;
        F(j,1,n)
        {
            cin>>a[j];
            if(a[j]%2==1)
                b[j]=b[j-1]+1;
            else
                b[j]=b[j-1];
        }
        if(b[n]<k||(b[n]-k)%2==1)
        {
            cout<<"NO"<<endl;
            continue;
        }
        cout<<"YES"<<endl;
        F(j,1,n) if(b[j]!=b[j-1] && k>1)
        {
            cout<<j<<" ";
            --k;
        }
        cout<<n<<endl;
    }
}


#include <bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define f(i,x,n) for(ll int i=x;i<n;i++)
#define re(j,x,n) for(ll int j=x;j>=n;j--)
#define f1(k,x,n) for(ll int k=x;k<=n;k++)
#define mp make_pair
#define pb push_back
#define mod 1000000007
using namespace std;
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    ll int t;
    cin>>t;
    while(t--)
    {
      ll int n,k,f=0;
      cin>>n>>k;
      ll int a[n],c[n+5]={0};
      for(int i=0;i<n;i++)
      {
        cin>>a[i];
        if(a[i]%2==1)
        {
          f++;
          c[f]=i+1;
        }
      }
      if(c[f]!=n)
       c[f]=n;
      if(f<k)
       cout<<"NO"<<endl;
      else
      {
        if(f%2==0)
       {
         if(k%2==1)
          cout<<"NO"<<endl;
         else
         {
           cout<<"YES"<<endl;
           for(int i=f-k+1;i<=f;i++)
            cout<<c[i]<<" ";
            cout<<endl;
          }
        }
         else
        {
          if(k%2==0)
          	cout<<"NO"<<endl;
          else
          {
            cout<<"YES"<<endl;
            for(int i=f-k+1;i<=f;i++)
             cout<<c[i]<<" ";
             cout<<endl;
          }
        }
       }
    }
}


#include<bits/stdc++.h>
using namespace std;
long long int num[210000],ps[210000];
int main()
{
    long long int T,n,k,i,t;
    scanf("%lld",&T);
    while(T--)
    {
        t=1;
        scanf("%lld%lld",&n,&k);
        for(i=1;i<=n;i++)
        {
            long long int x;
            scanf("%d",&x);
            num[i]=num[i-1]+x;
        }
        long long int l=num[n];bool falg=false;
        for(i=n;i>=1;i--)
        {
            if((l-num[i])%2==1)
            {
                ps[t++]=i;
                l=num[i];
            }
            if(t==k)
            {
                l=i;
                falg=true;
                break;
            }
        }
        if(!falg||(num[l])%2==0)
        {
            printf("NO\n");
            continue;
        }
        //printf("%d\n",l);
        printf("YES\n");
        for(i=t-1;i>=1;i--)
        printf("%lld ",ps[i]);printf("%d\n",n);

    }
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
    //freopen("input.txt", "r", stdin);

    int test;
    scanf("%d", &test);

    while(test--)
    {
        int n,k,x,odd = 0;
        vector<int>vec;
        vec.push_back(0);
        scanf("%d %d", &n, &k);

        for(int i=1; i<=n; i++)
        {
            scanf("%d", &x);

            if(x%2)
            {
                odd++;
                vec.push_back(i);
            }
        }

        if(k <= odd && (k%2) == (odd%2) )
        {
            printf("YES\n");

            if(k==1)
                printf("%d\n", n);
            else
            {
                for (int i=1; i<k; i++)
                {
                    printf("%d ", vec[i]);
                }
                printf("%d\n", n);
            }
        }
        else
            printf("NO\n");

    }

    return 0;
}


#include <bits/stdc++.h>

#define ll long long
#define endl '\n'
#define pii pair<ll int, ll int>
#define all(a) (a).begin(), (a).end()
#define F first
#define S second
#define pb push_back
#define mp make_pair
#define M 1000000007

using namespace std;

int main() {
	ll t;
	cin>>t;
	while(t--){
		ll n, k;
		cin>>n>>k;
		ll a[n], s=0;
		for(ll i=0; i<n; i++) {cin>>a[i]; s+=a[i];}
		vector <ll> v;
		ll cur=0, cnt=0, j=0;
		bool done=false;
		for(ll i=0; i<n; i++){
			if(cnt==k-1){
				j=i;
				done = true;
				break;
			}
			cur+=a[i];
			if(cur%2){
				cnt++;
				v.pb(i+1);
				cur=0;
			}
		}
		cur=0;
		for(ll i=j; i<n; i++) cur+=a[i];
		if(cur%2 and done) v.pb(n);
		if(v.size()==k){
			cout<<"YES"<<endl;
			for(auto x: v) cout<<x<<" ";
			cout<<endl;
		}
		else cout<<"NO"<<endl;
	}
    return 0;
}


#include <bits/stdc++.h>
#define pb push_back
#define FIN ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)
#define forr(i, a, b) for(int i = (a); i < (int) (b); i++)
#define forn(i, n) forr(i, 0, n)
#define dforr(i, a, b) for(int i = (int)(b-1); i >= (a); i--)
#define dforn(i, n) dforr(i, 0, n)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
int main()
{ FIN;
    ll q;
     cin >> q;
     forn(i,q)
     {
         ll n, k, cont=0;
         cin >> n >> k;
         ll arre[n];
         forn(j,n)
         {
             cin >> arre[j];
             if(arre[j]%2==1) cont++;
         }
         if(cont>=k&&(cont-k)%2==0)
         {
             cout << "YES" << endl;
             ll j=0;
             while(k>1)
             {
                 if(arre[j]%2==1)
                 {
                     cout << j+1 << " ";
                     k--;
                 }
                 j++;
             }
            cout << n << endl;
             cout << endl;
         }
         else cout << "NO" << endl;
     }
    return 0;
}


#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
int main()
{
    int t,n,i,j,k,x[200009],b,c,d[200009];
    scanf("%d",&t);
    while(t--)
    {
        b=0;
        scanf("%d %d",&n,&k);
        for(i=0;i<n;i++){
            scanf("%d",&x[i]);
            if(x[i]%2==1){
                d[b]=i+1;
                b++;
            }
        }
        if(b<k)
            printf("NO\n");
        else{
            j=b-k;
            if(j==0 || j%2==0){
                printf("YES\n");
                d[b-1]=n;
                for(i=j;i<b;i++)
                    printf("%d ",d[i]);
                puts("");
            }
            else
                printf("NO\n");
        }
    }
}


#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
#include <cstdlib>
#include <vector>
using namespace std;

int main(){
    int n,len,x,k,t;
    cin >> n;vector<int> v,v2;
    for(int i = 0;i < n;i++){
        cin >> len;cin >> k;t = 0;
        for(int j = 0;j < len;j++){
            cin >> x;
            v.push_back(x);
            if(x % 2 == 1){
                v2.push_back(j + 1);
            }
        }
        if(((v2.size() - k) % 2 == 0) && (k <= v2.size())){
            cout << "YES" << "\n";
            t = v2.size() - k;
            if(v.at(v.size() - 1) % 2 == 0){
                t++;
                while(t < v2.size()){
                    cout << v2.at(t - 1) << " ";
                    t++;
                }
                cout << v.size();
            }else{
                while(t < v2.size()){
                    cout << v2.at(t) << " ";
                    t++;
                }
            }
            cout << "\n";
        }else{
            cout << "NO" << "\n";
        }
        v.clear();v2.clear();
    }
    return 0;
}


#include<bits/stdc++.h>
#include<vector>
using namespace std;
typedef long long ll;

const int N=2e5+100;

bool vis[N];

int main(){
	ios::sync_with_stdio(false);
	int T;
	cin>>T;
	while(T--){
		int v,n,k,cnt=0;
		cin>>n>>k;
		memset(vis,0,sizeof(vis));
		for(int i=1;i<=n;i++){
			cin>>v;
			if(v&1)vis[i]=1,cnt++;
		}
		if(cnt<k||((k+cnt)&1)){
			cout<<"NO\n";
			continue;
		}
		//都是奇数,偶数可以
		cout<<"YES\n";
		k--;
		for(int i=1;i<=n-1;i++){
			if(!k)break;
			if(vis[i]){
				cout<<i<<" ";
				k--;
			}
		}
		cout<<n<<endl;
	}
}


#include <bits/stdc++.h>
using namespace std;

int main() {
  int t;
  cin >> t;
  while(t--){
    int n,k,cnt=0;
    vector<int> vec;
    cin >> n >> k ;
    for(int i = 0 ; i < n ; ++ i ) {
     long long int x;
      cin >> x ;
      if(x&1){
        vec.push_back(i+1);
        cnt++;
      }

    }

    if(k%2==0 && (cnt==k || (cnt>k && cnt%2==0))){
      cout << "YES\n";
      if(k==1)
      cout << n << "\n";
    else {
      //int pre=vec[0];
      cout << vec[0] << " ";
      k-=2;
      for(int i = 1 ; i < vec.size() && k>0 ; ++ i ) {
        cout << vec[i] << " ";
        k--;
      }
      cout << n << "\n";
    }
    }
    else if((k&1) && (cnt==k || (cnt>k && (cnt&1)))){
    	cout << "YES\n";
      if(k==1)
      cout << n << "\n";
    else {
      //int pre=vec[0];
      cout << vec[0] << " ";
      k-=2;
      for(int i = 1 ; i < vec.size() && k>0 ; ++ i ) {
        cout << vec[i] << " ";
        k--;
      }
      cout << n << "\n";
    }
    }
    else
      cout << "NO\n";
  }

}


#include <bits/stdc++.h>
#include <stdbool.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
int main(int argc, char** argv) {
	int q,i,j,n,k,num,d;
	cin>>q;
	for(i=1;i<=q;i++)
	{
		cin>>n>>k;
		bool arr[n]{false};d=0;
		for(j=1;j<=n;j++)
		{
			cin>>num;
			if(num%2==1)
			{
				d++;
				arr[j]=true;
			}
		}
		if((d>=k)&((d-k)%2==0))
		{
			cout<<"YES "<<endl;
			for(j=1;j<=n;j++)
			 {
			 if (arr[j]==true)
			 {
			 	cout<<j<<" ";
			 	k=k-1;
			 	{
			 	    if(k==1)
			 	    break;
			 	}
			 }
			 }
			 cout<<n<<endl;
		}
		else cout<<"NO"<<endl;
	}
	return 0;
}


#include <iostream>
#include <vector>
using namespace std;
int main() {
	int q, k, n;
	cin >> q;
	vector<int> ans;
	while (q-- && cin >> n >> k) {
		ans.clear();
		long long int sum = 0;
		for (int i = 1; i <= n; i++) {
			long long int tmp;
			cin >> tmp;
			sum += tmp;
			if (sum%2 == 1) {
				ans.push_back(i);
				sum = 0;
			}
		}
		int len = ans.size();
		ans[len - 1] = n;
		if (len < k) {
			puts("NO");
			continue;
		}
		if ((len - k)%2 == 0) {
			puts("YES");
			for (int i = len - k; i < len; i++)
				printf("%d ", ans[i]);
			putchar(10);
		}
		else
			puts("NO");
	}
	return 0;
}


#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAXN=2e5+5;
ll a[MAXN];
int main()
{
    int q;scanf("%d",&q);
    while(q--)
    {
        ll n,k;
        scanf("%lld%lld",&n,&k);
        ll odd=0,even=0;
        for(int i=1;i<=n;i++)
        {
            scanf("%lld",&a[i]);
            if(a[i]&1)
                odd++;
            else
                even++;
        }
        int flag=0,count_=0;
        if(odd<k||((odd>k&&(odd-k)%2==1)))
            printf("NO\n");
        else
        {
            printf("YES\n");
            if(k==1)
                printf("%d\n",n);
            else
            {
                for(int i=1;i<=n;i++)
            {
                if(a[i]&1)
                {
                    if(flag==0)
                    {
                        flag=1;printf("%d",i);
                    }

                    else
                        printf(" %d",i);
                    count_++;
                }
                if(count_==k-1)
                        break;
            }
            printf(" %d\n",n);
            }

        }
    }
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
const int mx=200007;
long long a[mx], n,k,q, c[mx];
int main()
{
    long  i,j;
    cin>>q;
    c[0]=0;
  while (q--)
    {
        cin>>n>>k;
        for(j=1;j<=n;++j)
        {    cin>>a[j];  if( a[j] % 2 == 1 ) c[j]=c[j-1]+1; else c[j]=c[j-1];     }
        if( c[n]<k || (c[n]-k) % 2 == 1)    { cout<<"NO"<<endl;   continue;  }

        cout<<"YES"<<endl;
        for(j=1;j<=n;++j) if(c[j]!=c[j-1] && k>1)
        {       cout<<j<<' ';      --k;    }
        cout<<n<<endl;
    }
}


#include<iostream>
#include<bits/stdc++.h>
#define mod 1000000007
#define eps 1e-9
#define PI 3.14159265358979323846
#define F first
#define S second
#define ll long long
#define pb push_back
#define mp make_pair
#define Fr(i,a,b) for(int i=a;i<=b;i++)
#define RF(i,a,b) for(int i=a;i>=b;i--)
#define vi vector<ll>
#define vvi vector<vector<int>>
#define pii pair<int,int>
#define vpii vector<pii>
using namespace std;
int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    #ifndef ONLINE_JUDGE
        freopen("text.txt", "r", stdin);
    #endif

    int t=1;
    cin>>t;
    while(t--){
    	int n,k;
    	cin>>n>>k;
    	long long x;
    	vi a;
    	long long sum=0;
    	vi b;
    	Fr(i,0,n-1){
    		cin>>x;
    		sum+=x;
    		int u=b.size();
    		if(sum%2!=0&&u<k-1){
    			b.pb(i+1);
    			sum=0;
    		}
    	}
    	int u=b.size();
    	if(sum%2!=0&&u==k-1){
    		b.push_back(n);
    	    cout<<"YES"<<endl;
    	    Fr(i,0,u){
    	    	cout<<b[i]<<" ";
    	    }
    	    cout<<endl;
    	}
    	else{
    		cout<<"NO"<<endl;
    	}
    	//cout<<b.size()<<endl;
    }
    return 0;
}


#include <bits/stdc++.h>
#define ll long long
const int N = 2e5 + 7;
using namespace std;
int a[N], b[N];
int main()
{
    int q, n, k;
    scanf("%d",&q);
    while(q--)
    {
        scanf("%d%d",&n,&k); int cnt = 0;
        for(int i = 1; i <= n; i++)
        {
            scanf("%d",&a[i]);
            if(a[i] & 1) cnt++;
        }
        vector <int> v;
        if(cnt < k) puts("NO");
        else
        {
            ll sum = 0;
            for(int i = 1; i <= n; i++)
            {
                sum += a[i];
                if(sum % 2 != 0)
                {
                    v.push_back(i);
                    sum = 0;
                }
            }
            int p = v.size() - k;
            if(v.size() < k) puts("NO");
            else if(p % 2 == 0 && p != 0) puts("NO");
            else
            {
                puts("YES");
                for(int i = 0; i < k - 1; i++)
                    cout << v[i] << ' ';
                cout << n << endl;
            }
        }

    }
}


#include <bits/stdc++.h>
#define maxn 200005
#define ll long long
using namespace std;
int T, n, m;
int pre[maxn], a[maxn];

int main()
{
  scanf("%d", &T);
  while(T--){
    scanf("%d%d",&n,&m);
    int ans = 0;
    for(int i=1;i<=n;i++) {scanf("%d", &pre[i]);if(pre[i] % 2 == 1) ans ++;}
    if(ans < m){
      puts("NO");
      continue;
    }
    if((ans % m) % 2 == 1){
      puts("NO");
      continue;
    }
    int cnt = 0;
    int i;
    for(i=1;i<=n;i++){
        if(cnt == m - 1) break;
      if(pre[i] % 2 == 1){
        a[cnt ++] = i;
      }
    }
    a[cnt ++] = n;
    puts("YES");
    for(int i=0;i<cnt;i++){
      cout<<a[i]<<" ";
    }
    puts("");
  }
  return 0;
}


#include <bits/stdc++.h>
#define maxn 200005
#define ll long long
using namespace std;
ll T, n, m;
ll pre[maxn];

int main()
{
  scanf("%lld", &T);
  while(T--){
    scanf("%lld%lld",&n,&m);
    ll ans = 0;
    for(int i=1;i<=n;i++) {scanf("%lld", &pre[i]);if(pre[i] % 2 == 1) ans ++;}
    if(ans < m){
      puts("NO");
      continue;
    }
    if(((ans - m) % 2) == 1){
      puts("NO");
      continue;
    }
    puts("YES");
    for(int i=1;i<=n;i++){
			if(m == 1){
        printf("%lld\n", n);
				break;
      }
			if(pre[i] % 2 == 1){
        printf("%d ", i);
        m --;
      }
    }
  }
  return 0;
}


#include <bits/stdc++.h>
#define maxn 200005
#define ll long long
using namespace std;
int T, n, m;
ll pre[maxn], a[maxn];

int main()
{
  scanf("%d", &T);
  while(T--){
    scanf("%d%d",&n,&m);
    ll ans = 0;
    for(int i=1;i<=n;i++) {scanf("%lld", &pre[i]);if(pre[i] % 2 == 1) ans ++;}
    if(ans < m){
      puts("NO");
      continue;
    }
    if((ans - m) % 2 == 1){
      puts("NO");
      continue;
    }
    puts("YES");
    for(int i=1;i<=n;i++){
      if(pre[i] % 2 == 1){
        printf("%d ", i);
        m --;
      }
      if(m == 1){
        printf("%d\n", n);
      }
    }
  }
  return 0;
}


#include <bits/stdc++.h>
#define maxn 200005
#define ll long long
using namespace std;
int T, n, m;
int pre[maxn], a[maxn];

int main()
{
  scanf("%d", &T);
  while(T--){
    scanf("%d%d",&n,&m);
    int ans = 0;
		int cnt = 0;
		vector<int> v;
    for(int i=1;i<=n;i++) scanf("%d", &pre[i]);
		int i;
    for(i=1;i<=n;i++){
			if(pre[i] % 2 == 1 && cnt < m - 1){
				v.push_back(i);
				cnt ++;
			}
			else if(cnt == m - 1) break;
		}
		for(i++;i<=n;i++){
			ans += pre[i];
		}
		v.push_back(n);
		if(ans % 2 == 1){
			puts("YES");
			for(int i=0;i<v.size();i++){
				cout<<v[i]<<" ";
			}
			puts("");
		}
		else puts("NO");
  }
  return 0;
}


#include <bits/stdc++.h>
#define maxn 200005
#define ll long long
using namespace std;
int T, n, m;
int pre[maxn], a[maxn];

int main()
{
  scanf("%d", &T);
  while(T--){
    scanf("%d%d",&n,&m);
    int ans = 0;
    for(int i=1;i<=n;i++) {scanf("%d", &pre[i]);if(pre[i] % 2 == 1) ans ++;}
    if(ans < m){
      puts("NO");
      continue;
    }
    if((ans % m) % 2 == 1){
      puts("NO");
      continue;
    }
    int cnt = 0;
    int i;
    for(i=1;i<=n;i++){
      if(pre[i] % 2 == 1){
        a[cnt ++] = i;
      }
      if(cnt == m - 1) break;
    }
    a[cnt ++] = n;
    puts("YES");
    for(int i=0;i<cnt;i++){
      cout<<a[i]<<" ";
    }
    puts("");
  }
  return 0;
}


#include <bits/stdc++.h>
#define maxn 200005
#define ll long long
using namespace std;
ll T, n, m;
ll pre[maxn];

int main()
{
  scanf("%lld", &T);
  while(T--){
    scanf("%lld%lld",&n,&m);
    ll ans = 0;
    for(int i=1;i<=n;i++) {scanf("%lld", &pre[i]);if(pre[i] % 2 == 1) ans ++;}
    if(ans < m){
      puts("NO");
      continue;
    }
    if(((ans - m) % 2) == 1){
      puts("NO");
      continue;
    }
    puts("YES");
    for(int i=1;i<=n;i++){
      if(pre[i] % 2 == 1){
        printf("%d ", i);
        m --;
      }
      if(m == 1){
        printf("%d\n", n);
      }
    }
  }
  return 0;
}


#include <bits/stdc++.h>
#define maxn 200005
#define ll long long
using namespace std;
ll T, n, m;
ll pre[maxn];

int main()
{
  scanf("%lld", &T);
  while(T--){
    scanf("%lld%lld",&n,&m);
    ll ans = 0;
    for(int i=1;i<=n;i++) {scanf("%lld", &pre[i]);if(pre[i] % 2 == 1) ans ++;}
    if(ans < m){
      puts("NO");
      continue;
    }
    if(((ans - m) % 2) == 1){
      puts("NO");
      continue;
    }
    puts("YES");
    for(int i=1;i<=n;i++){
      if(pre[i] % 2 == 1){
        printf("%d ", i);
        m --;
      }
      if(m == 1){
        printf("%d\n", n);
				break;
      }
    }
  }
  return 0;
}


#include <bits/stdc++.h>
#define maxn 200005
#define ll long long
using namespace std;
int T, n, m;
int pre[maxn], a[maxn];

int main()
{
  scanf("%d", &T);
  while(T--){
    scanf("%d%d",&n,&m);
    int ans = 0;
    for(int i=1;i<=n;i++) {scanf("%d", &pre[i]);if(pre[i] % 2 == 1) ans ++;}
    if(ans < m){
      puts("NO");
      continue;
    }
    if(ans == m){
      puts("YES");
      cout<<n<<endl;
      continue;
    }
    if((ans - m) % 2 == 1){
      puts("NO");
      continue;
    }
    int cnt = 0;
    int i;
    for(i=1;i<=n;i++){
      if(pre[i] % 2 == 1){
        a[cnt ++] = i;
      }
      if(cnt == m - 1) break;
    }
    a[cnt ++] = n;
    puts("YES");
    for(int i=0;i<cnt;i++){
      cout<<a[i]<<" ";
    }
    puts("");
  }
  return 0;
}


#include <bits/stdc++.h>
#define maxn 200005
#define ll long long
using namespace std;
ll T, n, m;
ll pre[maxn], a[maxn];

int main()
{
  scanf("%lld", &T);
  while(T--){
    scanf("%lld%lld",&n,&m);
    ll ans = 0;
    for(int i=1;i<=n;i++) {scanf("%lld", &pre[i]);if(pre[i] % 2 == 1) ans ++;}
    if(ans < m){
      puts("NO");
      continue;
    }
    if((ans - m) % 2 == 1){
      puts("NO");
      continue;
    }
    puts("YES");
    for(int i=1;i<=n;i++){
      if(pre[i] % 2 == 1){
        printf("%d ", i);
        m --;
      }
      if(m == 1){
        printf("%d\n", n);
      }
    }
  }
  return 0;
}


#include <bits/stdc++.h>
#define maxn 200005
#define ll long long
using namespace std;
int T, n, m;
ll pre[maxn], a[maxn];

int main()
{
  scanf("%d", &T);
  while(T--){
    scanf("%d%d",&n,&m);
    ll ans = 0;
    for(int i=1;i<=n;i++) {scanf("%lld", &pre[i]);if(pre[i] % 2 == 1) ans ++;}
    if(ans < m){
      puts("NO");
      continue;
    }
    if((ans - m) % 2 == 1){
      puts("NO");
      continue;
    }
    ll cnt = 0;
    for(int i=1;i<=n;i++){
      if(pre[i] % 2 == 1){
        a[cnt ++] = i;
      }
      if(cnt == m - 1) break;
    }
    a[cnt ++] = n;
    puts("YES");
    for(int i=0;i<cnt;i++){
      cout<<a[i]<<" ";
    }
    puts("");
  }
  return 0;
}


#include <bits/stdc++.h>
#define maxn 200005
#define ll long long
using namespace std;
int T, n, m;
int pre[maxn], a[maxn];

int main()
{
  scanf("%d", &T);
  while(T--){
    scanf("%d%d",&n,&m);
    int ans = 0;
    for(int i=1;i<=n;i++) {scanf("%d", &pre[i]);if(pre[i] % 2 == 1) ans ++;}
    if(ans < m){
      puts("NO");
      continue;
    }
    if((ans - m) % 2 == 1){
      puts("NO");
      continue;
    }
    int cnt = 0;
    int i;
    for(i=1;i<=n;i++){
        if(cnt == m - 1) break;
      if(pre[i] % 2 == 1){
        a[cnt ++] = i;
      }
    }
    a[cnt ++] = n;
    puts("YES");
    for(int i=0;i<cnt;i++){
      cout<<a[i]<<" ";
    }
    puts("");
  }
  return 0;
}


#include <bits/stdc++.h>
#define maxn 200005
#define ll long long
using namespace std;
int T, n, m;
int pre[maxn], a[maxn];

int main()
{
  scanf("%d", &T);
  while(T--){
    scanf("%d%d",&n,&m);
    int ans = 0;
    for(int i=1;i<=n;i++) {scanf("%d", &pre[i]);if(pre[i] % 2 == 1) ans ++;}
    if(ans < m){
      puts("NO");
      continue;
    }
    if((ans - m) % 2 == 1){
      puts("NO");
      continue;
    }
    int cnt = 0;
    int i;
    for(i=1;i<=n;i++){
      if(pre[i] % 2 == 1){
        a[cnt ++] = i;
      }
      if(cnt == m - 1) break;
    }
    a[cnt ++] = n;
    puts("YES");
    for(int i=0;i<cnt;i++){
      cout<<a[i]<<" ";
    }
    puts("");
  }
  return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define read freopen("IN.txt","r",stdin)
#define write freopen("OT.txt","w",stdout)
#define fastread() {ios_base::sync_with_stdio(false);cin.tie(0);}
#define MEM(a,b)          memset(a,b,sizeof(a))

#define dbg(args...) {cerr<<"-->";debugger::call(#args,args);cerr<<"\n";}
struct debugger {
    static void call(const char* it) {}
    template<typename T, typename ... aT>
    static void call(const char* it, T a, aT... rest) {
        string b;
        for (; *it&&*it != ','; ++it) if (*it != ' ')b += *it;
        cerr << b << "=" << a << " ";
        call(++it, rest...);
    }
};

int main()
{
    //read;
    int q;
    cin>>q;
    while(q--)
    {
        int n,k,ar[200010];
        MEM(ar,0);
        cin>>n>>k;
        int mxe = (n-k)+1,hse=0,sum=0;
        for(int i=1;i<=n;i++)
        {
            cin>>ar[i];
            sum+=ar[i];
            if(!(ar[i]&1))hse++;
        }
        if((hse>=mxe)){cout<<"NO\n";continue;}

        hse=0;mxe=0;
        int r[k+1],ck=1,sm=ar[1];
        for(int i=1;(i<=n && ck<=k);i++)
        {

            if(sm&1){r[ck]=i;sm=ar[i+1];if(ck==k){break;}ck++;}
            else if(!(sm&1)){sm+=ar[i+1];}
            //  dbg(ck);
        }
        r[ck]==n;
        if(ck!=k){cout<<"NO\n";continue;}
        cout<<"YES\n";
        for(int i=1;i<=ck;i++)cout<<r[i]<<" ";
        cout<<"\n";
    }

}


#include<bits/stdc++.h>
using namespace std;
#define read freopen("IN.txt","r",stdin)
#define write freopen("OT.txt","w",stdout)
#define fastread() {ios_base::sync_with_stdio(false);cin.tie(0);}
#define MEM(a,b)          memset(a,b,sizeof(a))

#define dbg(args...) {cerr<<"-->";debugger::call(#args,args);cerr<<"\n";}
struct debugger {
    static void call(const char* it) {}
    template<typename T, typename ... aT>
    static void call(const char* it, T a, aT... rest) {
        string b;
        for (; *it&&*it != ','; ++it) if (*it != ' ')b += *it;
        cerr << b << "=" << a << " ";
        call(++it, rest...);
    }
};

int main()
{
    //read;
    int q;
    cin>>q;
    while(q--)
    {
        int n,k,ar[200010];
        MEM(ar,0);
        cin>>n>>k;
        int mxe = (n-k)+1,hse=0;
        for(int i=1;i<=n;i++)
        {
            cin>>ar[i];
            if(!(ar[i]&1))hse++;
        }
        if(hse>=mxe){cout<<"NO\n";continue;}
        else {cout<<"YES\n";}
        hse=0;mxe=0;
        int r[k+1],ck=1,sm=ar[1];
        for(int i=1;(i<=n && ck<=k);i++)
        {

            if(sm&1){r[ck]=i;ck++;sm=ar[i+1];}
            else if(!(sm&1)){sm+=ar[i+1];}
            //  dbg(ck);
        }
        r[ck]=n;
        for(int i=1;i<ck;i++)cout<<r[i]<<" ";
        cout<<"\n";
    }

}


#include<bits/stdc++.h>
using namespace std;
#define read freopen("IN.txt","r",stdin)
#define write freopen("OT.txt","w",stdout)
#define fastread() {ios_base::sync_with_stdio(false);cin.tie(0);}
#define MEM(a,b)          memset(a,b,sizeof(a))

#define dbg(args...) {cerr<<"-->";debugger::call(#args,args);cerr<<"\n";}
struct debugger {
    static void call(const char* it) {}
    template<typename T, typename ... aT>
    static void call(const char* it, T a, aT... rest) {
        string b;
        for (; *it&&*it != ','; ++it) if (*it != ' ')b += *it;
        cerr << b << "=" << a << " ";
        call(++it, rest...);
    }
};

int main()
{
    //read;
    int q;
    cin>>q;
    while(q--)
    {
        int n,k,ar[200010];
        MEM(ar,0);
        cin>>n>>k;
        int mxe = (n-k)+1,hse=0;
        for(int i=1;i<=n;i++)
        {
            cin>>ar[i];
            if(!(ar[i]&1))hse++;
        }
        if(hse>=mxe){cout<<"NO\n";continue;}
        else {cout<<"YES\n";}
        hse=0;mxe=0;
        int r[k+1],ck=1,sm=ar[1];
        for(int i=1;(i<=n && ck<=k);i++)
        {

            if(sm&1){r[ck]=i;ck++;sm=ar[i+1];}
            else if(!(sm&1)){sm+=ar[i+1];}
            //  dbg(ck);
        }
        for(int i=1;i<ck;i++)cout<<r[i]<<" ";
        cout<<"\n";
    }

}


#include<bits/stdc++.h>
using namespace std;
#define read freopen("IN.txt","r",stdin)
#define write freopen("OT.txt","w",stdout)
#define fastread() {ios_base::sync_with_stdio(false);cin.tie(0);}
#define MEM(a,b)          memset(a,b,sizeof(a))

#define dbg(args...) {cerr<<"-->";debugger::call(#args,args);cerr<<"\n";}
struct debugger {
    static void call(const char* it) {}
    template<typename T, typename ... aT>
    static void call(const char* it, T a, aT... rest) {
        string b;
        for (; *it&&*it != ','; ++it) if (*it != ' ')b += *it;
        cerr << b << "=" << a << " ";
        call(++it, rest...);
    }
};

int main()
{

    int q;
    cin>>q;
    while(q--)
    {
        int n,k,ar[200010];
        MEM(ar,0);
        cin>>n>>k;
        int mxe = (n-k)+1,hse=0,sum=0;
        for(int i=1;i<=n;i++)
        {
            cin>>ar[i];
            sum+=ar[i];
            if(!(ar[i]&1))hse++;
        }
        if(!(sum&1)||(hse>=mxe)){cout<<"NO\n";continue;}

        hse=0;mxe=0;
        int r[k+1],ck=1,sm=ar[1];
        for(int i=1;(i<=n && ck<=k);i++)
        {

            if(sm&1){r[ck]=i;sm=ar[i+1];if(ck==k){break;}ck++;}
            else if(!(sm&1)){sm+=ar[i+1];}
            //  dbg(ck);
        }
        if(ck!=k){cout<<"NO\n";continue;}
        cout<<"YES\n";
        for(int i=1;i<=ck;i++)cout<<r[i]<<" ";
        cout<<"\n";
    }

}


#include<bits/stdc++.h>
using namespace std;
#define read freopen("IN.txt","r",stdin)
#define write freopen("OT.txt","w",stdout)
#define fastread() {ios_base::sync_with_stdio(false);cin.tie(0);}
#define MEM(a,b)          memset(a,b,sizeof(a))

#define dbg(args...) {cerr<<"-->";debugger::call(#args,args);cerr<<"\n";}
struct debugger {
    static void call(const char* it) {}
    template<typename T, typename ... aT>
    static void call(const char* it, T a, aT... rest) {
        string b;
        for (; *it&&*it != ','; ++it) if (*it != ' ')b += *it;
        cerr << b << "=" << a << " ";
        call(++it, rest...);
    }
};

int main()
{
    //read;
    int q;
    cin>>q;
    while(q--)
    {
        int n,k,ar[200010];
        MEM(ar,0);
        cin>>n>>k;
        int mxe = (n-k)+1,hse=0,sum=0;
        for(int i=1;i<=n;i++)
        {
            cin>>ar[i];
            sum+=ar[i];
            if(!(ar[i]&1))hse++;
        }
        if((hse>=mxe)){cout<<"NO\n";continue;}

        hse=0;mxe=0;
        int r[k+1],ck=1,sm=ar[1];
        for(int i=1;(i<=n && ck<=k);i++)
        {

            if(sm&1){r[ck]=i;sm=ar[i+1];if(ck==k){break;}ck++;}
            else if(!(sm&1)){sm+=ar[i+1];}
            //  dbg(ck);
        }
       // if(ck!=k || r[ck]!=n){cout<<"NO\n";continue;}
        cout<<"YES\n";
        for(int i=1;i<=ck;i++)cout<<r[i]<<" ";
        cout<<"\n";
    }

}


#include<bits/stdc++.h>
using namespace std;
#define read freopen("IN.txt","r",stdin)
#define write freopen("OT.txt","w",stdout)
#define fastread() {ios_base::sync_with_stdio(false);cin.tie(0);}
#define MEM(a,b)          memset(a,b,sizeof(a))

#define dbg(args...) {cerr<<"-->";debugger::call(#args,args);cerr<<"\n";}
struct debugger {
    static void call(const char* it) {}
    template<typename T, typename ... aT>
    static void call(const char* it, T a, aT... rest) {
        string b;
        for (; *it&&*it != ','; ++it) if (*it != ' ')b += *it;
        cerr << b << "=" << a << " ";
        call(++it, rest...);
    }
};

int main()
{
    //read;
    int q;
    cin>>q;
    while(q--)
    {
        int n,k,ar[200010];
        MEM(ar,0);
        cin>>n>>k;
        int mxe = (n-k)+1,hse=0,sum=0;
        for(int i=1;i<=n;i++)
        {
            cin>>ar[i];
            sum+=ar[i];
            if(!(ar[i]&1))hse++;
        }
        if((hse>=mxe)){cout<<"NO\n";continue;}

        hse=0;mxe=0;
        int r[k+1],ck=1,sm=ar[1];
        for(int i=1;(i<=n && ck<=k);i++)
        {

            if(sm&1){r[ck]=i;sm=ar[i+1];if(ck==k){break;}ck++;}
            else if(!(sm&1)){sm+=ar[i+1];}
            //  dbg(ck);
        }
        if(ck!=k || r[ck]!=n){cout<<"NO\n";continue;}
        cout<<"YES\n";
        for(int i=1;i<=ck;i++)cout<<r[i]<<" ";
        cout<<"\n";
    }

}


#include<bits/stdc++.h>
using namespace std;
#define read freopen("IN.txt","r",stdin)
#define write freopen("OT.txt","w",stdout)
#define fastread() {ios_base::sync_with_stdio(false);cin.tie(0);}
#define MEM(a,b)          memset(a,b,sizeof(a))

#define dbg(args...) {cerr<<"-->";debugger::call(#args,args);cerr<<"\n";}
struct debugger {
    static void call(const char* it) {}
    template<typename T, typename ... aT>
    static void call(const char* it, T a, aT... rest) {
        string b;
        for (; *it&&*it != ','; ++it) if (*it != ' ')b += *it;
        cerr << b << "=" << a << " ";
        call(++it, rest...);
    }
};

int main()
{
    //read;
    int q;
    cin>>q;
    while(q--)
    {
        int n,k,ar[200010];
        MEM(ar,0);
        cin>>n>>k;
        int mxe = (n-k)+1,hse=0;
        for(int i=1;i<=n;i++)
        {
            cin>>ar[i];
            if(!(ar[i]&1))hse++;
        }
        if(hse>=mxe){cout<<"NO\n";continue;}
        else {cout<<"YES\n";}
        hse=0;mxe=0;
        int r[k+1],ck=1,sm=ar[1];
        for(int i=1;(i<=n && ck<=k);i++)
        {

            if(sm&1){r[ck]=i;ck++;sm=ar[i+1];}
            else if(!(sm&1)){sm+=ar[i+1];}
            //  dbg(ck);
        }
        r[ck-1]=n;
        for(int i=1;i<ck;i++)cout<<r[i]<<" ";
        cout<<"\n";
    }

}


#include<bits/stdc++.h>
using namespace std;
#define read freopen("IN.txt","r",stdin)
#define write freopen("OT.txt","w",stdout)
#define fastread() {ios_base::sync_with_stdio(false);cin.tie(0);}
#define MEM(a,b)          memset(a,b,sizeof(a))

#define dbg(args...) {cerr<<"-->";debugger::call(#args,args);cerr<<"\n";}
struct debugger {
    static void call(const char* it) {}
    template<typename T, typename ... aT>
    static void call(const char* it, T a, aT... rest) {
        string b;
        for (; *it&&*it != ','; ++it) if (*it != ' ')b += *it;
        cerr << b << "=" << a << " ";
        call(++it, rest...);
    }
};

int main()
{
    //read;
    int q;
    cin>>q;
    while(q--)
    {
        int n,k,ar[200010];
        MEM(ar,0);
        cin>>n>>k;
        int mxe = (n-k)+1,hse=0,sum=0;
        for(int i=1;i<=n;i++)
        {
            cin>>ar[i];
            sum+=ar[i];
            if(!(ar[i]&1))hse++;
        }
        if((hse<mxe))
        {

            int r[k+1],ck=1,sm=ar[1];
            for(int i=1;(i<=n && ck<=k);i++)
            {

                if(sm&1){r[ck]=i;sm=ar[i+1];if(ck==k){break;}ck++;}
                else if(!(sm&1)){sm+=ar[i+1];}
                //  dbg(ck);
            }
            cout<<"YES\n";
            if(ck!=k){cout<<"NO\n";continue;}
            for(int i=1;i<=ck;i++)cout<<r[i]<<" ";
            cout<<"\n";
            continue;
        }

        hse=0;mxe=0;
        cout<<"NO\n";
    }

}


#include<bits/stdc++.h>
using namespace std;
#define read freopen("IN.txt","r",stdin)
#define write freopen("OT.txt","w",stdout)
#define fastread() {ios_base::sync_with_stdio(false);cin.tie(0);}
#define MEM(a,b)          memset(a,b,sizeof(a))

#define dbg(args...) {cerr<<"-->";debugger::call(#args,args);cerr<<"\n";}
struct debugger {
    static void call(const char* it) {}
    template<typename T, typename ... aT>
    static void call(const char* it, T a, aT... rest) {
        string b;
        for (; *it&&*it != ','; ++it) if (*it != ' ')b += *it;
        cerr << b << "=" << a << " ";
        call(++it, rest...);
    }
};

int main()
{
    //read;
    int q;
    cin>>q;
    while(q--)
    {
        long long n,k,ar[200010];
        MEM(ar,0);
        cin>>n>>k;
        long long mxe = (n-k)+1,hse=0;
        for(int i=1;i<=n;i++)
        {
            cin>>ar[i];
            if(!(ar[i]&1))hse++;
        }
        if(hse>=mxe){cout<<"NO\n";continue;}
        else {cout<<"YES\n";}
        hse=0;mxe=0;
        long long r[k+1],ck=1,sm=ar[1];
        for(int i=1;(i<=n && ck<=k);i++)
        {

            if(sm&1){r[ck]=i;ck++;sm=ar[i+1];}
            else if(!(sm&1)){sm+=ar[i+1];}
            //  dbg(ck);
        }
        r[ck-1]=n;
        for(int i=1;i<ck;i++)cout<<r[i]<<" ";
        cout<<"\n";
    }

}


#include<bits/stdc++.h>
using namespace std;
#define read freopen("IN.txt","r",stdin)
#define write freopen("OT.txt","w",stdout)
#define fastread() {ios_base::sync_with_stdio(false);cin.tie(0);}
#define MEM(a,b)          memset(a,b,sizeof(a))

#define dbg(args...) {cerr<<"-->";debugger::call(#args,args);cerr<<"\n";}
struct debugger {
    static void call(const char* it) {}
    template<typename T, typename ... aT>
    static void call(const char* it, T a, aT... rest) {
        string b;
        for (; *it&&*it != ','; ++it) if (*it != ' ')b += *it;
        cerr << b << "=" << a << " ";
        call(++it, rest...);
    }
};

int main()
{

    int q;
    cin>>q;
    while(q--)
    {
        long long n,k,ar[200010];
        cin>>n>>k;
        long long hse=0;
        for(int i=1;i<=n;i++)
        {
            cin>>ar[i];
            if((ar[i]&1))hse++;
        }

        if((hse<k) || hse%2 != k%2 )
        {cout<<"NO\n";continue;}

         cout<<"YES\n";

            int r[k+1],ck=1,sm=ar[1];
            for(int i=1;(i<=n && ck<=k);i++)
            {

                if(sm&1){r[ck]=i;sm=ar[i+1];if(ck==k){break;}ck++;}
                else if(!(sm&1)){sm+=ar[i+1];}
            }
            r[ck]=n;
            for(int i=1;i<=ck;i++)cout<<r[i]<<" ";
            cout<<"\n";
            continue;
    }

}


#include<bits/stdc++.h>
using namespace std;
#define read freopen("IN.txt","r",stdin)
#define write freopen("OT.txt","w",stdout)
#define fastread() {ios_base::sync_with_stdio(false);cin.tie(0);}
#define MEM(a,b)          memset(a,b,sizeof(a))

#define dbg(args...) {cerr<<"-->";debugger::call(#args,args);cerr<<"\n";}
struct debugger {
    static void call(const char* it) {}
    template<typename T, typename ... aT>
    static void call(const char* it, T a, aT... rest) {
        string b;
        for (; *it&&*it != ','; ++it) if (*it != ' ')b += *it;
        cerr << b << "=" << a << " ";
        call(++it, rest...);
    }
};

int main()
{
    read;
    int q;
    cin>>q;
    while(q--)
    {
        int n,k,ar[200010];
        MEM(ar,0);
        cin>>n>>k;
        int mxe = (n-k)+1,hse=0;
        for(int i=1;i<=n;i++)
        {
            cin>>ar[i];
            if(!(ar[i]&1))hse++;
        }
        if(hse>=mxe){cout<<"NO\n";continue;}
        else {cout<<"YES\n";}
        hse=0;mxe=0;
        int r[k+1],ck=1,sm=ar[1];
        for(int i=1;(i<=n && ck<=k);i++)
        {

            if(sm&1){r[ck]=i;ck++;sm=ar[i+1];}
            else if(!(sm&1)){sm+=ar[i+1];}
            //  dbg(ck);
        }
        for(int i=1;i<ck;i++)cout<<r[i]<<" ";
        cout<<"\n";
    }

}


#include<bits/stdc++.h>
using namespace std;
#define read freopen("IN.txt","r",stdin)
#define write freopen("OT.txt","w",stdout)
#define fastread() {ios_base::sync_with_stdio(false);cin.tie(0);}
#define MEM(a,b)          memset(a,b,sizeof(a))

#define dbg(args...) {cerr<<"-->";debugger::call(#args,args);cerr<<"\n";}
struct debugger {
    static void call(const char* it) {}
    template<typename T, typename ... aT>
    static void call(const char* it, T a, aT... rest) {
        string b;
        for (; *it&&*it != ','; ++it) if (*it != ' ')b += *it;
        cerr << b << "=" << a << " ";
        call(++it, rest...);
    }
};

int main()
{

    int q;
    cin>>q;
    while(q--)
    {
        int n,k,ar[200010];
        MEM(ar,0);
        cin>>n>>k;
        int mxe = (n-k)+1,hse=0;
        for(int i=1;i<=n;i++)
        {
            cin>>ar[i];
            if(!(ar[i]&1))hse++;
        }
        if(hse>=mxe){cout<<"NO\n";continue;}

        hse=0;mxe=0;
        int r[k+1],ck=1,sm=ar[1];
        for(int i=1;(i<=n && ck<=k);i++)
        {

            if(sm&1){r[ck]=i;sm=ar[i+1];if(ck==k){break;}ck++;}
            else if(!(sm&1)){sm+=ar[i+1];}
            //  dbg(ck);
        }
        if(ck!=k){cout<<"NO\n";continue;}
        cout<<"YES\n";
        for(int i=1;i<=ck;i++)cout<<r[i]<<" ";
        cout<<"\n";
    }

}


#include<bits/stdc++.h>
using namespace std;
#define read freopen("IN.txt","r",stdin)
#define write freopen("OT.txt","w",stdout)
#define fastread() {ios_base::sync_with_stdio(false);cin.tie(0);}
#define MEM(a,b)          memset(a,b,sizeof(a))

#define dbg(args...) {cerr<<"-->";debugger::call(#args,args);cerr<<"\n";}
struct debugger {
    static void call(const char* it) {}
    template<typename T, typename ... aT>
    static void call(const char* it, T a, aT... rest) {
        string b;
        for (; *it&&*it != ','; ++it) if (*it != ' ')b += *it;
        cerr << b << "=" << a << " ";
        call(++it, rest...);
    }
};

int main()
{
    read;
    int q;
    cin>>q;
    while(q--)
    {
        int n,k,ar[200010];
        MEM(ar,0);
        cin>>n>>k;
        int mxe = (n-k)+1,hse=0;
        for(int i=1;i<=n;i++)
        {
            cin>>ar[i];
            if(!(ar[i]&1))hse++;
        }
        if(hse>=mxe){cout<<"NO\n";continue;}

        hse=0;mxe=0;
        int r[k+1],ck=1,sm=ar[1];
        for(int i=1;(i<=n && ck<=k);i++)
        {

            if(sm&1){r[ck]=i;sm=ar[i+1];if(ck==k){break;}ck++;}
            else if(!(sm&1)){sm+=ar[i+1];}
            //  dbg(ck);
        }
        if(ck!=k){cout<<"NO\n";continue;}
        cout<<"YES\n";
        for(int i=1;i<=ck;i++)cout<<r[i]<<" ";
        cout<<"\n";
    }

}


#include<bits/stdc++.h>
using namespace std;
#define read freopen("IN.txt","r",stdin)
#define write freopen("OT.txt","w",stdout)
#define fastread() {ios_base::sync_with_stdio(false);cin.tie(0);}
#define MEM(a,b)          memset(a,b,sizeof(a))

#define dbg(args...) {cerr<<"-->";debugger::call(#args,args);cerr<<"\n";}
struct debugger {
    static void call(const char* it) {}
    template<typename T, typename ... aT>
    static void call(const char* it, T a, aT... rest) {
        string b;
        for (; *it&&*it != ','; ++it) if (*it != ' ')b += *it;
        cerr << b << "=" << a << " ";
        call(++it, rest...);
    }
};

int main()
{
    //read;
    int q;
    cin>>q;
    while(q--)
    {
        int n,k,ar[200010];
        MEM(ar,0);
        cin>>n>>k;
        int mxe = (n-k)+1,hse=0;
        for(int i=1;i<=n;i++)
        {
            cin>>ar[i];
            if(!(ar[i]&1))hse++;
        }
        if(hse>=mxe){cout<<"NO\n";continue;}
        else {cout<<"YES\n";}
        hse=0;mxe=0;
        int r[k+1],ck=1,sm=ar[1];
        for(int i=1;(i<=n && ck<=k);i++)
        {

            if(sm&1){r[ck]=i;ck++;sm=ar[i+1];}
            else if(!(sm&1)){sm+=ar[i+1];}
            //  dbg(ck);
        }
        r[ck]=n;
        for(int i=1;i<ck;i++)cout<<r[i]<<" ";
        cout<<"\n";
    }


#include<bits/stdc++.h>
using namespace std;
#define read freopen("IN.txt","r",stdin)
#define write freopen("OT.txt","w",stdout)
#define fastread() {ios_base::sync_with_stdio(false);cin.tie(0);}
#define MEM(a,b)          memset(a,b,sizeof(a))

#define dbg(args...) {cerr<<"-->";debugger::call(#args,args);cerr<<"\n";}
struct debugger {
    static void call(const char* it) {}
    template<typename T, typename ... aT>
    static void call(const char* it, T a, aT... rest) {
        string b;
        for (; *it&&*it != ','; ++it) if (*it != ' ')b += *it;
        cerr << b << "=" << a << " ";
        call(++it, rest...);
    }
};

int main()
{
    read;
    int q;
    cin>>q;
    while(q--)
    {
        long long n,k,ar[200010];
        cin>>n>>k;
        long long hse=0;
        for(int i=1;i<=n;i++)
        {
            cin>>ar[i];
            if((ar[i]&1))hse++;
        }

        if((hse<k) || hse%2 != k%2 )
        {cout<<"NO\n";continue;}

         cout<<"YES\n";

            int r[k+1],ck=1,sm=ar[1];
            for(int i=1;(i<=n && ck<=k);i++)
            {

                if(sm&1){r[ck]=i;sm=ar[i+1];if(ck==k){break;}ck++;}
                else if(!(sm&1)){sm+=ar[i+1];}
            }
            r[ck]=n;
            for(int i=1;i<=ck;i++)cout<<r[i]<<" ";
            cout<<"\n";
            continue;
    }

}


#include<bits/stdc++.h>
using namespace std;
#define read freopen("IN.txt","r",stdin)
#define write freopen("OT.txt","w",stdout)
#define fastread() {ios_base::sync_with_stdio(false);cin.tie(0);}
#define MEM(a,b)          memset(a,b,sizeof(a))

#define dbg(args...) {cerr<<"-->";debugger::call(#args,args);cerr<<"\n";}
struct debugger {
    static void call(const char* it) {}
    template<typename T, typename ... aT>
    static void call(const char* it, T a, aT... rest) {
        string b;
        for (; *it&&*it != ','; ++it) if (*it != ' ')b += *it;
        cerr << b << "=" << a << " ";
        call(++it, rest...);
    }
};

int main()
{
    //read;
    int q;
    cin>>q;
    while(q--)
    {
        int n,k,ar[200010];
        MEM(ar,0);
        cin>>n>>k;
        int mxe = (n-k)+1,hse=0,sum=0;
        for(int i=1;i<=n;i++)
        {
            cin>>ar[i];
            sum+=ar[i];
            if(!(ar[i]&1))hse++;
        }
        if((hse<mxe))
        {

            int r[k+1],ck=1,sm=ar[1];
            for(int i=1;(i<=n && ck<=k);i++)
            {

                if(sm&1){r[ck]=i;sm=ar[i+1];if(ck==k){break;}ck++;}
                else if(!(sm&1)){sm+=ar[i+1];}
                //  dbg(ck);
            }
            cout<<"YES\n";
            if(ck!=k || r[ck]!=n){cout<<"NO\n";continue;}
            for(int i=1;i<=ck;i++)cout<<r[i]<<" ";
            cout<<"\n";
            continue;
        }

        hse=0;mxe=0;
        cout<<"NO\n";
    }

}


#include<bits/stdc++.h>
using namespace std;
int main(){
    long long t;
    cin>>t;
    while(t--){
        long long n,k,c=0,i;
        cin>>n>>k;
        vector<int> v;
        long long a[n];
        for( i=0;i<n;i++){
        cin>>a[i];
        if(a[i]%2!=0){
            c++;
            v.push_back(i+1);
        }
        }
        if(c>=k){
            cout<<"YES"<<endl;
            for( i=0;i<k-1;i++)
            cout<<v[i]<<" ";
            //if(v[v.size()-1]!=n)
            cout<<n;
            cout<<endl;
        }
        else
        cout<<"NO"<<endl;
    }
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main(){
    long long t;
    cin>>t;
    while(t--){
        long long n,k,c=0;
        cin>>n>>k;
        vector<int> v;
        long long a[n];
        for(int i=0;i<n;i++){
        cin>>a[i];
        if(a[i]%2!=0){
            c++;
            v.push_back(i+1);
        }
        }
        if(c=>k){
            cout<<"YES"<<endl;
            for(int i=0;i<v.size();i++)
            cout<<v[i]<<" ";
            if(v[i]!=n)
            cout<<n;
            cout<<endl;
        }
        else
        cout<<"NO"<<endl;
    }
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main(){
    long long t;
    cin>>t;
    while(t--){
        long long n,k,c=0,i;
        cin>>n>>k;
        vector<int> v;
        long long a[n];
        for( i=0;i<n;i++){
        cin>>a[i];
        if(a[i]%2!=0){
            c++;
            v.push_back(i+1);
        }
        }
        if(c>=k&&((c-k+1)&1)){
            cout<<"YES"<<endl;
           // cout<<v[1]-1<<" ";
            for( i=0;i<k-1;i++)
            cout<<v[i]<<" ";
           // if(v[v.size()-1]!=n)
            cout<<n;
            cout<<endl;
        }
       /* else if(c==k){
            cout<<"YES"<<endl;
           // cout<<v[1]-1<<" ";
        for(int i=0;i<k-1;i++)
        cout<<v[i]<<" ";
       // if(v[v.size()-1]==n)
        cout<<n;
        cout<<endl;
        }*/
        else
        cout<<"NO"<<endl;
    }
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main(){
    long long t;
    cin>>t;
    while(t--)
	{
	    int n,k,x,f[100005];
		cin>>n>>k;int cnt=0;
		for(int i=1;i<=n;i++){cin>>x;if(x&1)f[++cnt]=i;}
	//	for(int i=1;i<k;i++)cout<<f[i]<<" ";
	//	cout<<endl;
		if(cnt>=k&&(cnt-k+1)&1)
		{
			printf("YES\n");
			for(int i=1;i<k;i++)cout<<f[i]<<' ';
			cout<<n<<endl;
		}
		else printf("NO\n");
	}
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main(){
    long long t;
    cin>>t;
    while(t--)
	{
	    int n,k,x,f[200010];
		cin>>n>>k;int cnt=0;
		for(int i=1;i<=n;i++){cin>>x;if(x&1)f[++cnt]=i;}
	//	for(int i=1;i<k;i++)cout<<f[i]<<" ";
	//	cout<<endl;
		if(cnt>=k&&(cnt-k+1)&1)
		{
			printf("YES\n");
			for(int i=1;i<k;i++)cout<<f[i]<<' ';
			cout<<n<<endl;
		}
		else printf("NO\n");
	}
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main(){
    long long t;
    cin>>t;
    while(t--){
        long long n,k,c=0,i;
        cin>>n>>k;
        vector<int> v;
        long long a[n];
        for( i=0;i<n;i++){
        cin>>a[i];
        if(a[i]%2!=0){
            c++;
            v.push_back(i+1);
        }
        }
        if(c>k){
            cout<<"YES"<<endl;
           // cout<<v[1]-1<<" ";
            for( i=0;i<k-1;i++)
            cout<<v[i]<<" ";
           // if(v[v.size()-1]!=n)
            cout<<n;
            cout<<endl;
        }
        else if(c==k){
            cout<<"YES"<<endl;
           // cout<<v[1]-1<<" ";
        for(int i=0;i<k-1;i++)
        cout<<v[i]<<" ";
       // if(v[v.size()-1]==n)
        cout<<n;
        cout<<endl;
        }
        else
        cout<<"NO"<<endl;
    }
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main(){
    long long t;
    cin>>t;
    while(t--){
        long long n,k,c=0,i;
        cin>>n>>k;
        vector<int> v;
        long long a[n];
        for( i=0;i<n;i++){
        cin>>a[i];
        if(a[i]%2!=0){
            c++;
            v.push_back(i+1);
        }
        }
        if(c>=k){
            cout<<"YES"<<endl;
            for( i=0;i<v.size();i++)
            cout<<v[i]<<" ";
            if(v[v.size()-1]!=n)
            cout<<n;
            cout<<endl;
        }
        else
        cout<<"NO"<<endl;
    }
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main(){
    long long t;
    cin>>t;
    while(t--){
        long long n,k,c=0,i;
        cin>>n>>k;
        vector<int> v;
        long long a[n];
        for( i=0;i<n;i++){
        cin>>a[i];
        if(a[i]%2!=0){
            c++;
            v.push_back(i+1);
        }
        }
        if(c>k){
            cout<<"YES"<<endl;
            cout<<v[1]-1<<" ";
            for( i=1;i<k-1;i++)
            cout<<v[i]<<" ";
           // if(v[v.size()-1]!=n)
            cout<<n;
            cout<<endl;
        }
        else if(c==k){
            cout<<"YES"<<endl;
            cout<<v[1]-1<<" ";
        for(int i=1;i<k-1;i++)
        cout<<v[i]<<" ";
       // if(v[v.size()-1]==n)
        cout<<n;
        cout<<endl;
        }
        else
        cout<<"NO"<<endl;
    }
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main(){
    long long t;
    cin>>t;
    while(t--){
        long long n,k,c=0;
        cin>>n>>k;
        vector<int> v;
        long long a[n];
        for(int i=0;i<n;i++){
        cin>>a[i];
        if(a[i]%2!=0){
            c++;
            v.push_back(i+1);
        }
        }
        if(c==k){
            cout<<"YES"<<endl;
            for(int i=0;i<v.size();i++)
            cout<<v[i]<<" ";
            cout<<endl;
        }
        else
        cout<<"NO"<<endl;
    }
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main(){
    long long t;
    cin>>t;
    while(t--){
        long long n,k,c=0,i;
        cin>>n>>k;
        vector<int> v;
        long long a[n];
        for( i=0;i<n;i++){
        cin>>a[i];
        if(a[i]%2!=0){
            c++;
            v.push_back(i+1);
        }
        }
        if(c>k){
            cout<<"YES"<<endl;
            cout<<v[1]-1<<" ";
            for( i=0;i<k-2;i++)
            cout<<v[i]<<" ";
            if(v[v.size()-1]!=n)
            cout<<n;
            cout<<endl;
        }
        else if(c==k){
            cout<<"YES"<<endl;
            cout<<v[1]-1<<" ";
        for(int i=1;i<k-1;i++)
        cout<<v[i]<<" ";
        if(v[v.size()-1]==n)
        cout<<n;
        cout<<endl;
        }
        else
        cout<<"NO"<<endl;
    }
    return 0;
}