#include <map>
#include <set>
#include <list>
#include <cmath>
#include <queue>
#include <stack>
#include <cstdio>
#include <string>
#include <vector>
#include <complex>
#include <cstdlib>
#include <cstring>
#include <numeric>
#include <sstream>
#include <iostream>
#include <algorithm>
#include <functional>

#define mp       make_pair
#define pb       push_back
#define all(x)   (x).begin(),(x).end()
#define rep(i,n) for(int i=0;i<(n);i++)
#define repi(i,a,b) for(int i = (a); i < (b); i++)

using namespace std;

typedef    long long          ll;
typedef    unsigned long long ull;
typedef    vector<bool>       vb;
typedef    vector<int>        vi;
typedef    vector<vb>         vvb;
typedef    vector<vi>         vvi;
typedef    pair<int,int>      pii;

const int INF=1<<29;
const double EPS=1e-9;

const int dx[]={1,0,-1,0},dy[]={0,-1,0,1};
int vote[1010];
int cost[1010];

int main(){
	int n,m;
	cin>>n>>m;
	memset(vote, 0, sizeof(vote));
	memset(cost, 0, sizeof(cost));
	rep(i, n){
		cin>>cost[i];
	}
	rep(i, m){
		int x;
		cin>>x;
		rep(j, n){
			if(cost[j]<=x){
				vote[j]++;
				break;
			}
		}
	}
	int cnt = 0;
	int ans = 0;
	rep(i, n){
		if(vote[i]>=cnt){
			cnt =vote[i];
			ans=i;
		}
	}
	cout <<ans+1<<endl;
	return 0;
}
#include <bits/stdc++.h>

const int MAXN = 1010;
typedef long long LL;
int pri[MAXN], bak, n;
int ispri(int x) {
	for (int i = 2; i * i <= x; ++i)
		if (x % i == 0) return false;
	return true;
}
LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; }
LL lcm(LL a, LL b) { return a / gcd(a, b) * b; }
LL get(int x, int y) {
	if (x < 1 || y < 1 || x > n || y > n) return 1;
	if ((x & 1) == (y & 1))
		return pri[x + y >> 1] * pri[x + n * 3 - y + 1 >> 1];
	return lcm(lcm(get(x - 1, y), get(x, y - 1)), lcm(get(x + 1, y), get(x, y + 1))) + 1;
}
int main() {
	std::ios_base::sync_with_stdio(false), std::cin.tie(0);
	std::cin >> n; n += 2;
	int now = 2;
	while (bak < n * 2) {
		if (ispri(now)) pri[++bak] = now;
		++now;
	}
	for (int i = 2; i < n; ++i, std::cout << '\n')
		for (int j = 2; j < n; ++j)
			std::cout << get(i, j) << ' ';
	return 0;
}
