Problem: Vasya is going to the Olympics in the city Ntown by train. The boy wants to read the textbook to prepare for the Olympics. He counted that he needed k hours for this. He also found that the light in the train changes every hour. The light is measured on a scale from 0 to 100, where 0 is very dark, and 100 is very light.

Vasya has a train lighting schedule for all n hours of the trip — n numbers from 0 to 100 each (the light level in the first hour, the second hour and so on). During each of those hours he will either read the whole time, or not read at all. He wants to choose k hours to read a book, not necessarily consecutive, so that the minimum level of light among the selected hours were maximum. Vasya is very excited before the upcoming contest, help him choose reading hours.

Input

The first input line contains two integers n and k (1 ≤ n ≤ 1000, 1 ≤ k ≤ n) — the number of hours on the train and the number of hours to read, correspondingly. The second line contains n space-separated integers ai (0 ≤ ai ≤ 100), ai is the light level at the i-th hour.

Output

In the first output line print the minimum light level Vasya will read at. In the second line print k distinct space-separated integers b1, b2, ..., bk, — the indexes of hours Vasya will read at (1 ≤ bi ≤ n). The hours are indexed starting from 1. If there are multiple optimal solutions, print any of them. Print the numbers bi in an arbitrary order.

Examples

Input

5 3
20 10 30 40 10


Output

20
1 3 4 


Input

6 5
90 20 35 40 60 100


Output

35
1 3 4 5 6 

Note

In the first sample Vasya should read at the first hour (light 20), third hour (light 30) and at the fourth hour (light 40). The minimum light Vasya will have to read at is 20.

Solution (in JAVA):

Solution:
import java.awt.Point;
import java.io.*;
import java.math.BigInteger;
import java.util.*;
import static java.lang.Math.*;
 
public class _A {
        
        final boolean ONLINE_JUDGE = System.getProperty("ONLINE_JUDGE")!=null;
        BufferedReader in;
        PrintWriter out;
        StringTokenizer tok = new StringTokenizer("");
        
        void init() throws FileNotFoundException{
                if (ONLINE_JUDGE){
                    in = new BufferedReader(new FileReader("input.txt"));
                    out = new PrintWriter("output.txt");
                }else{
                        in = new BufferedReader(new FileReader("input.txt"));
                        out = new PrintWriter("output.txt");
                }
        }
        
        String readString() throws IOException{
                while(!tok.hasMoreTokens()){
                        tok = new StringTokenizer(in.readLine());
                }
                return tok.nextToken();
        }
        
        int readInt() throws IOException{
                return Integer.parseInt(readString());
        }
        
        long readLong() throws IOException{
                return Long.parseLong(readString());
        }
        
        double readDouble() throws IOException{
                return Double.parseDouble(readString());
        }
        
        int[] readArr(int n) throws IOException{
            int[] res = new int[n];
            for(int i = 0; i < n; i++){
                res[i] = readInt();
            }
            return res;
        }
        
        long[] readArrL(int n) throws IOException{
            long[] res = new long[n];
            for(int i = 0; i < n; i++){
                res[i] = readLong();
            }
            return res;
        }
        
        public static void main(String[] args){
                new _A().run();
        }
        
        public void run(){
                try{
                        long t1 = System.currentTimeMillis();
                        init();
                        solve();
                        out.close();
                        long t2 = System.currentTimeMillis();
                        System.err.println("Time = "+(t2-t1));
                }catch (Exception e){
                        e.printStackTrace(System.err);
                        System.exit(-1);
                }
        }
        
        class Pnt implements Comparable<Pnt>{
            int x, i;

            public Pnt(int x, int i) {
                super();
                this.x = x;
                this.i = i;
            }

            @Override
            public int compareTo(Pnt o) {
                return -this.x + o.x;
            }
            
        }
        
        
        void solve() throws IOException{
            int n = readInt();
            int k = readInt();
            Pnt[] x = new Pnt[n];
            for(int i = 0; i < n; i++){
                x[i] = new Pnt(readInt(), i+1);
            }
            Arrays.sort(x);
            out.println(x[k-1].x);
            int[] res = new int[k];
            for(int i = 0; i < k; i++){
                res[i] = x[i].i;
            }
            Arrays.sort(res);
            for(int i = 0; i < k; i++){
                out.print(res[i] + " ");
            }
            
        }
        
        void maxHepify(int[] a, int i, int length){
            int l = (i<<1) + 1;
            int r = (i<<1) + 2;
            int largest = i;
            if(l < length && a[l] > a[largest])
                largest = l;
            if(r < length && a[r] > a[largest])
                largest = r;
            if(largest != i){
                a[largest] += a[i];
                a[i] = a[largest] - a[i];
                a[largest] -= a[i];
                maxHepify(a, largest, length);
            }
        }
        
        void buildMaxHeap(int[] a){
            for(int i = a.length/2 - 1; i >= 0; i--){
                maxHepify(a, i, a.length);
            }
        }
        
        void heapSort(int[] a){
            buildMaxHeap(a);
            for(int i = a.length - 1; i > 0; i--){
                a[i] += a[0];
                a[0] = a[i] - a[0];
                a[i] -= a[0];
                maxHepify(a, 0, i);
            }
        }

        
        int[] zFunction(char[] s){
            int[] z = new int[s.length];
            z[0] = 0;
            for (int i=1, l=0, r=0; i<s.length; ++i) {
                if (i <= r)
                    z[i] = min (r-i+1, z[i-l]);
                while (i+z[i] < s.length && s[z[i]] == s[i+z[i]])
                    ++z[i];
                if (i+z[i]-1 > r){
                    l = i; 
                    r = i+z[i]-1;
                }
            }   
            return z;
        }
        
        int[] prefixFunction(char[] s){
            int[] pr = new int[s.length];
            for (int i = 1; i< s.length; ++i) {
                int j = pr[i-1];
                while (j > 0 && s[i] != s[j])
                    j = pr[j-1];
                if (s[i] == s[j])  ++j;
                pr[i] = j;
            }
            return pr;
        }
        
        int ModExp(int a, int n, int mod){
            int res = 1;
            while (n!=0)
                if ((n & 1) != 0) {
                    res = (res*a)%mod;
                    --n;
                }
                else {
                    a = (a*a)%mod;
                    n >>= 1;
                }
            return res;
        }
        
        
        public static class Utils {         
 
            private Utils() {}

            public static void mergeSort(int[] a) {
                    mergeSort(a, 0, a.length - 1);
            }
             
            private static void mergeSort(int[] a, int leftIndex, int rightIndex) {
                    final int MAGIC_VALUE = 50;
                    if (leftIndex < rightIndex) {
                            if (rightIndex - leftIndex <= MAGIC_VALUE) {
                                    insertionSort(a, leftIndex, rightIndex);
                            } else {
                                    int middleIndex = (leftIndex + rightIndex) / 2;
                                    mergeSort(a, leftIndex, middleIndex);
                                    mergeSort(a, middleIndex + 1, rightIndex);
                                    merge(a, leftIndex, middleIndex, rightIndex);
                            }
                    }
            }
 
            private static void merge(int[] a, int leftIndex, int middleIndex, int rightIndex) {
                int length1 = middleIndex - leftIndex + 1;
                int length2 = rightIndex - middleIndex;
                int[] leftArray = new int[length1];
                int[] rightArray = new int[length2];
                System.arraycopy(a, leftIndex, leftArray, 0, length1);
                System.arraycopy(a, middleIndex + 1, rightArray, 0, length2);
                for (int k = leftIndex, i = 0, j = 0; k <= rightIndex; k++) {
                    if (i == length1) {
                            a[k] = rightArray[j++];
                    } else if (j == length2) {
                            a[k] = leftArray[i++];
                    } else {
                            a[k] = leftArray[i] <= rightArray[j] ? leftArray[i++] : rightArray[j++];
                    }
                }
            }
 
            private static void insertionSort(int[] a, int leftIndex, int rightIndex) {
                for (int i = leftIndex + 1; i <= rightIndex; i++) {
                    int current = a[i];
                    int j = i - 1;
                    while (j >= leftIndex && a[j] > current) {
                        a[j + 1] = a[j];
                        j--;
                        }
                    a[j + 1] = current;
                }
            }
        }
        
         
       
        
        boolean isPrime(int a){
            for(int i = 2; i <= sqrt(a); i++)
                if(a % i == 0) return false;
            return true;
        }
        
        static double distance(long x1, long y1, long x2, long y2){
            return Math.sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
        }
        
        static long gcd(long a, long b){
            if(min(a,b) == 0) return max(a,b);
            return gcd(max(a, b) % min(a,b), min(a,b));
        }
        
        static long lcm(long a, long b){
            return a * b /gcd(a, b);
        }
}

/*class Treap<K extends Comparable<K>>{
    
    public K x;
    public double y;
    public Treap<K> left;
    public Treap<K> right;
    
    public Treap(K x, double y, Treap<K> left, Treap<K> right) {
        this.x = x;
        this.y = y;
        this.left = left;
        this.right = right;
    }
    
    public static <K extends Comparable<K>> Treap<K> merge(Treap<K> l, Treap<K> r){
        if(l == null) return r;
        if(r == null) return l;
        if(l.y > r.y){
            return new Treap<K>(l.x, l.y, l.left, merge(l.right, r));
        }
        else{
            return new Treap<K>(r.x, r.y, merge(l, r.left), r.right);
        }
    }
    
    public void split(K x, Treap<K> left, Treap<K> right){
        Treap<K> newTreap = null;
        if(this.x.compareTo(x) <= 0){
            if(this.right == null){
                right = null;
            }
            else{
                right.split(x, newTreap, right);
            }
            left = new Treap<K>(this.x, this.y, left, newTreap);
        }
        else{
            if(this.left == null){
                left = null;
            }
            else{
                left.split(x, left, newTreap);
            }
            right = new Treap<K>(x, y, newTreap, right);
        }
    }
    
    public Treap<K> add(K x){
        Treap<K> left = null, right = null;
        this.split(x, left, right);
        Treap<K> temp = new Treap<K>(x, random(), null, null);
        return merge(merge(left, temp), right);
    }
    
    @SuppressWarnings("null")
    public Treap<K> remove(K x){
        Treap<K> left = null, temp = null, right = null;
        this.split(x, left, right);
        right.split(x, temp, right);
        return merge(left, right);
    }
    
    public static <K extends Comparable<K>> Treap<K> build(K[] a){
        Treap<K> temp = new Treap<K>(a[0], random(), null, null);
        for(int i = 1; i < a.length; i++){
            temp = temp.add(a[i]);
        }
        return temp;
    }
}*/