1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

int main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);
    int n,k;
    cin>>n>>k;
    vector<int>tab(n);
    for(int i = 0;i<n;++i){
        cin>>tab[i];
    }
    vector<int>mini(n);
    vector<int>maks(n);
    mini[0]=tab[0];
    for(int i = 1;i<n;++i){
        mini[i]=min(mini[i-1],tab[i]);
    }
    maks[n-1]=tab[n-1];
    for(int i = n-2;i>=0;--i){
        maks[i]=max(maks[i+1],tab[i]);
    }
    if(k==2){
        bool jest=false;
        for(int i = 0;i<n-1;++i){
            if(mini[i]>=maks[i+1]){
                jest=true;
                cout<<"TAK"<<endl<<i+1;
                break;
            }
        }
        if(!jest) cout<<"NIE";
    }
    else if(k==3){
        /*int x = 0;
        if(tab[1]<tab[0]){
            cout<<"TAK"<<endl;
            cout<<1<<" "<<2;
        }
        else if(tab[n-1]<tab[n-2]){
            cout<<"TAK"<<endl;
            cout<<n-2<<" "<<n-1;
        }
        else{
            bool jest = false;
            for(int i = 1;i<n-1;++i){
                if(mini[i-1])
            }
        }*/
        int temp=tab[0];
        int minii=0;
        for(int i = 1;i<n;++i){
            if(tab[i]<=temp){
                temp=tab[i];
                minii=i;
            }
        }
        temp=tab[n-1];
        int maksi=n-1;
        for(int i = n-2;i>=0;--i){
            if(tab[i]>=temp){
                temp=tab[i];
                maksi=i;
            }
        }
        if(minii==0 && maksi==n-1){
            cout<<"NIE";
        }
        else{
            cout<<"TAK"<<endl;
            if(minii!=0){
                cout<<minii<<" "<<minii+1;
            }
            else{
                cout<<maksi<<" "<<maksi+1;
            }
        }
    }
    else{
        if(tab[1]<=tab[0]){
            cout<<"TAK"<<endl;
            cout<<1<<" "<<2<<" ";
            int x = 2;
            k-=2; 
            while(k>1){
                cout<<x+1<<" ";
                ++x;--k;
            }
        }
        else if(tab[n-1]<=tab[n-2]){
            cout<<"TAK"<<endl;
            int x = 0;
            while(k>3){
                cout<<x+1<<" ";
                ++x;--k;
            }
            cout<<n-2<<" "<<n-1;
        }
        else{
            int x = 1;
            bool jest = false;
            while(x<n){
                if(tab[x]<=tab[x-1]){
                    jest=true;
                    break;
                }
                ++x;
            }
            if(!jest){
                cout<<"NIE";
            }
            else{
                cout<<"TAK"<<endl;
                int y = 0;
                while(y<x-2 && k>4){
                    cout<<y+1<<" ";
                    ++y;
                    --k;
                }
                cout<<x-1<<" "<<x<<" "<<x+1<<" ";
                y+=3; k-=3;
                while(k>1){
                    cout<<y+1<<" ";
                    ++y;
                    --k;
                }
            }
        }
        
    }
}