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
#include<bits/stdc++.h>

using namespace std;

constexpr int maxn = 1e5+1;
int n,k;
int ileminprz;
int poprz, akt;
vector<int> liczby(maxn);

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    cin>>n>>k;

    if(k == 2)
    {
        vector<int> maxr(maxn);
        vector<int> minl(maxn);
        cin>>liczby[1];
        minl[1] = liczby[1];

        for(int i=2;i<=n;i++)
        {
            cin>>liczby[i];
            minl[i] = min(minl[i-1], liczby[i]);
        }

        maxr[n] = liczby[n];
        for(int i = n-1;i > 0;i--)
        {
            maxr[i] = max(maxr[i+1], liczby[i+1]);
            if(minl[i] >= maxr[i])
            {
                cout<<"TAK";
                cout<<i;
                return 0;
            }
        }

        cout<<"NIE";
        return 0;
    }

    if(k == 3)
    {
        vector<int> maxr(maxn);
        vector<pair<int,int>> maxl(maxn);
        vector<pair<int,int>> minl(maxn);

        cin>>liczby[1];
        maxl[1] = {liczby[1], 1};
        minl[1] = {INT_MAX, 1};

        for(int i = 2;i <= n;i++)
        {
            cin>>liczby[i];
            if(liczby[i] <= liczby[1])
            {
                cout<<"TAK\n";
                cout<<i-1<<' '<<i;
                return 0;
            }

            if(minl[i-1].first > liczby[i])
                minl[i] = {liczby[i], i};
            else
                minl[i] = minl[i-1];

            if(maxl[i-1].first <= liczby[i])
                maxl[i] = {liczby[i], i};
            else
                maxl[i] = maxl[i-1];
        }

        for(int i = n-1;i > 1;i--)
        {
            maxr[i] = max(maxr[i+1], liczby[i+1]);
            if(minl[i].first >= maxr[i])
            {
                cout<<"TAK";
                cout<<minl[i].second-1<<' '<<minl[i].second;
                return 0;
            }

            if(maxl[i].first >= maxr[i])
            {
                cout<<"TAK";
                cout<<maxl[i].second-1<<' '<<maxl[i].second;
                return 0;
            }
        }

        cout<<"NIE";
    }

    if(k > 3)
    {
        cin>>poprz;
        for(int i=1;i<n;i++)
        {
            cin>>akt;
            if(akt <= poprz)
            {
                cout<<"TAK\n";

                for(int l=1;k>4;k--,l++)
                    cout<<l<<' ';

                cout<<i-1<<' '<<i<<' ';
                k-=2;

                for(int l = i+1;k>1;k--,l++)
                    cout<<l<<' ';

                return 0;
            }
            poprz = akt;
        }
        cout<<"NIE";
    }

    return 0;
}