#include<bits/stdc++.h>
using namespace std;
int n,m,a,b;
void bubbleSort(int arr[], int n,int bnum[]) {
for (int i = 0; i < n - 1; i++) {
int swapped = 0;
for (int j = 0; j < n - 1 - i; j++) {
if (arr[j] < arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
swapped = 1;
int tdmp = bnum[j];
bnum[j] = bnum[j + 1];
bnum[j+1] = tdmp;
swapped = 1;
}
}
if (swapped == 0) {
break;
}
}
}
int findMaxvalue(int arr[],int brr[],int size){
int maxvalue = arr[0];
int maxbianhao;
for(int i = 0;i<size;i++){
if(arr[i] > maxvalue){
maxvalue = arr[i];
maxbianhao = brr[i];
}
}
return maxbianhao;
}
bool bijiao(int arr[],int x,int m){
int ty = 0;
for(int i = 0;i < m;i++){
if(arr[i] == x){
ty = 1;
}
}
if(ty == 1){
return 1;
}else{
return 0;
}
}
struct Num{
int nx;
}t[105][100007];
int main(){
int max;
int bl[n];
int zylnum[n] = {};
int zyl[n] = {};
scanf("%d%d%d%d",&n,&m,&a,&b);
int sum[n] = {};
for(int i = 1;i <=a;i++){
bl[i-1] = i;
for(int j = 1;j <= n;j++){
cin >> t[i][j].nx;
}
}
for(int j = 1;j <= n;j++){
for(int i = 1;i<=n;i++){
sum[j-1] += t[i][j].nx;
}
}
for(int i = 1;i <=a;i++){
if(i == b){
for(int j = 1;j <=n;j++){
zylnum[j-1] = t[i][j].nx;
zyl[j-1]=j;
}
}
}
max = findMaxvalue(zylnum,zyl,n);
bubbleSort(sum,n,bl);
if(bijiao(bl,max,m)){
cout << max << " ";
for(int i = 0;i < (m-1);i++){
cout << bl[i] << " ";
}
} else{
for(int i = 0;i < (m-1);i++){
cout << bl[i] << " ";
}
cout << max << " ";
}
return 0;
}