#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>
#define He_he_boy ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0)
#define ld long double
#define pb push_back
#define pf push_front
#define eb emplace_back
#define fi first
#define se second
#define ull unsigned long long
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
#define mx_e max_element
#define open freopen("fcolor.in", "r", stdin);
#define close freopen("fcolor.out", "w", stdout);
#define endl cout << '\n'
#define run(a) for (ll w23 = 1; w23 <= a; w23++)
typedef int ll;
using namespace std;
const ld eps = 0.00001, Pi = 3.14159275358979323846;
const ll mod = 1e9 + 7;
ll mod2 = 998244353, tt;
/// --------------------------------------------------------
ld dist(ld x, ld y, ld x2, ld y2){
	return sqrt((x - x2) * (x - x2) + (y - y2) * (y - y2));
}
ll s[1000010], c[1000010], a[1000010];
void Ali() {
	ll n, m;
	cin >> n >> m;
	for(ll i = 1;i <= n;i ++){
		cin >> s[i];
	} 
	for(ll i = 1;i <= m;i ++){
		cin >> a[i];
	}
	set<pair<ll, pair<ll, ll>>>t;
	for(ll i = 1;i + n - 1 <= m;i ++){
		if(a[s[2] + i - 1] > a[s[1] + i - 1]){
			t.insert({i, {a[s[1] + i - 1], a[s[2] + i - 1]}});
		}
	}
	for(ll i = 3;i <= n;i ++){
		vector<pair<ll, pair<ll, ll>>>v, v2;
		for(auto to : t){
			if(to.se.se < to.se.fi){
				v.pb(to);
			}
			else{
				v2.pb(to);
			}
		}
		for(auto to : v){
			t.erase(to);
		}
		for(ll j = 0;j < v2.size();j ++){
			t.erase(v2[j]);
			v2[j].se.fi = v2[j].se.se;
			v2[j].se.se = a[s[i] + v2[j].fi - 1];
			t.insert(v2[j]);
		}
	}
	cout << t.size() << '\n';
	for(auto to : t){
		cout << to.fi << ' ';
	}
	
}
/// --------------------------------------------------------
int main() {
//  open
 // close;
  He_he_boy; 
  ll gg = 1; tt = 0;
  //cin >> gg;
  while (gg--) {
    Ali();
    // cout << '\n';
  }
  /*
   **PLUS ULTRA**
   */
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |