#include <cstdio>

#include <iostream>

#include <cmath>

#include <string>

#include <algorithm>

using namespace std;

int n,k,E[11];

//定义变量,需要获取的人数n,以及k个人会获得照片
struct qvq{

    int bh;

    int w;

    int lx;

}np[20005];

//结构体qvq存储每个人信息,qh表示编号(默认的初始化编号),w表示权值,lx表示类别(十种)
int qtq(qvq a,qvq b){

    if(a.w!=b.w)return a.w>b.w;

    return a.bh<b.bh;

}

//结构体排序规则,如果权值不相同,则按照权值从大到小排序,如果权值相同,则按照编号从小到大排序

int main(){

    scanf("%d%d",&n,&k);

    for(int i=0;i<10;i++){scanf("%d",&E[i]);}

    for(int i=0;i<n;i++){

        scanf("%d",&np[i].w);

        np[i].bh=i+1;
    
	}

//获取n,k,以及十种类别对应的权值,获取1-n个学生对应的权值,以及学生对应的编号
    sort(np,np+n,qtq);

//排序np数组

    for(int i=0;i<n;i++){

        np[i].lx=i%10;

        np[i].w+=E[np[i].lx];

    }

//计算重新排序好的np数组中的类别,并且将计算的类别对应的权值加到相应位置上
    sort(np,np+n,qtq);

//再次排序
    for(int i=0;i<k;i++)printf("%d ",np[i]);

//输出前k个人的初始编号
    return 0;

}