#include <cstdio>
#include <vector>
using namespace std;

const int MAX_N = 1000;
const int INF = 1<<29;

int N, M;
int as[MAX_N];

int solve(){
	int mini = INF, key = INF, ans = -1;
	bool hope = false;
	for(int i=0; i<N; i++){
		vector<int> ts;ts.reserve(M+1);
		for(int j=0; j<=M; j+=as[i]){
			ts.push_back(j);
		}
		vector<int> escp; escp.reserve(ts.size());
		for(int j=0, T = ts.size(); j<T; j++){
			int tme = ts[j];
			if( tme > mini || (tme == mini && as[i] >= key) ){
				escp.push_back(tme);
			}
		}
		if(!escp.empty()){
			int tme = escp[0];
			if(tme == mini && as[i] == key){
				hope = true;
			}
		}
		else{
			hope = false;
			mini = ts.back();
			key = as[i];
			ans = i;
		}
	}
	return hope ? N : ans + 1;
}

int main(){

	while(scanf("%d%d",&N, &M), N){
		for(int i=0; i<N; i++){
			scanf("%d", as+i);
		}
		printf("%d\n", solve());
	}
	return 0;
}