#include <bits/stdc++.h>
using namespace std;
string s,s3,s2,l1,l2;
long long j,i,l3,l4,n,a,pos,mx = 1e9,ans,mx2,numb,u,m,calc;
int main()
{

//    freopen("input.txt","r",stdin);
//    freopen("output.txt","w",stdout);

    ios_base::sync_with_stdio(0);
    cin.tie(0);

    cin >> n >> u;
    cin >> l1;
    cin >> l2;

    for(i = 0; i < u - n; i++)
    {
        calc = 0;
        for(j = 0; j < n; j++)
        {
            if(l1[j] != l2[j+i]) calc++;
        }
        if(calc < mx)
        {
            mx = calc;
            pos = i;
        }
    }
    cout << mx << endl;
    for(i = pos,j = 0; i < pos + n; i++,j++)
    {
        if(l1[j] != l2[i]) cout << j + 1 << " ";
    }
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
string s,s3,s2,l1,l2;
long long j,i,l3,l4,n,a,pos,mx,ans,mx2,numb,u,m;
int main()
{

//    freopen("input.txt","r",stdin);
//    freopen("output.txt","w",stdout);

    ios_base::sync_with_stdio(0);
    cin.tie(0);

    cin >> n >> u;
    cin >> l1;
    cin >> l2;

    for(i = 0; i < u; i++)
    {
        if(l1[j] == l2[i])
        {
            ans++;
            j++;
            if(mx < ans) {pos = i; mx = ans;}
        }
        else
            j = 0,ans = 0;
    }
    cout << n - mx << endl;
    for(i = mx; i <= n - mx; i++) cout << i + 1 << " ";
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
string s,s3,s2,l1,l2;
long long j,i,l3,l4,n,a,pos,mx = 1e9,ans,mx2,numb,u,m,calc;
int main()
{

//    freopen("input.txt","r",stdin);
//    freopen("output.txt","w",stdout);

    ios_base::sync_with_stdio(0);
    cin.tie(0);

    cin >> n >> u;
    cin >> l1;
    cin >> l2;

    for(i = 0; i <= u - n; i++)
    {
        calc = 0;
        for(j = 0; j < n; j++)
        {
            if(l1[j] != l2[j+i]) calc++;
        }
        if(calc < mx)
        {
            mx = calc;
            pos = i;
        }
    }
    cout << mx << endl;
    for(i = pos,j = 0; i < pos + n; i++,j++)
    {
        if(l1[j] != l2[i]) cout << j + 1 << " ";
    }
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define int long long int

int32_t main() {

	int t=1;
	//cin >> t;
	while(t--)
	{    int n,m;
	     cin >> n >> m;
	     string s,t;
	     cin >> s >> t;
	     int an=s.size();
	     int id=-1;
	     for(int i=0; i<t.size()-s.size()+1; i++)
	     {
	         int c=0;
	         for(int j=i; j<i+s.size(); j++)
	         {
	         	 if(s[j-i]!=t[j])c++;
	         } //cout << c<<" ";
	         an=min(an,c);
	         if(c==an)id=i;
	     } cout << an<<endl;
	     for(int j=id; j<id+s.size(); j++)
	     {
	     	if(s[j-id]!=t[j])cout << j-id<<" ";
	     }
	    //cin >> n;
	}
	// your code goes here
	return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define int long long int

int32_t main() {

	int t=1;
	//cin >> t;
	while(t--)
	{    int n,m;
	     cin >> n >> m;
	     string s,t;
	     cin >> s >> t;
	     int an=s.size();
	     int id=-1;
	     for(int i=0; i<t.size()-s.size()+1; i++)
	     {
	         int c=0;
	         for(int j=i; j<i+s.size(); j++)
	         {
	         	 if(s[j-i]!=t[j])c++;
	         } //cout << c<<" ";
	         an=min(an,c);
	         if(c==an)id=i;
	     } cout << an<<endl;
	     for(int j=id; j<i+s.size(); j++)
	     {
	     	if(s[j-id]!=t[j])cout << j-id+1<<" ";
	     }
	    //cin >> n;
	}
	// your code goes here
	return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define int long long int

int32_t main() {

	int t=1;
	//cin >> t;
	while(t--)
	{    int n,m;
	     cin >> n >> m;
	     string s,t;
	     cin >> s >> t;
	     int an=s.size();
	     int id=-1;
	     for(int i=0; i<t.size()-s.size()+1; i++)
	     {
	         int c=0;
	         for(int j=i; j<i+s.size(); j++)
	         {
	         	 if(s[j-i]!=t[j])c++;
	         } //cout << c<<" ";
	         an=min(an,c);
	         if(c==an)id=i;
	     } cout << an<<endl;
	     for(int j=id; j<id+s.size(); j++)
	     {
	     	if(s[j-id]!=t[j])cout << j-id+1<<" ";
	     }
	    //cin >> n;
	}
	// your code goes here
	return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define int long long int

int32_t main() {

	int t=1;
	//cin >> t;
	while(t--)
	{
	     string s,t;
	     cin >> s >> t;
	     int an=s.size();

	     for(int i=0; i<t.size()-s.size()+1; i++)
	     {
	         int c=0;
	         for(int j=i; j<i+s.size(); j++)
	         {
	         	 if(s[j-i]!=t[j])c++;
	         }
	         an=min(an,c);
	     } cout << an<<endl;
	    //cin >> n;
	}
	// your code goes here
	return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define int long long int

int32_t main() {

	int t=1;
	//cin >> t;
	while(t--)
	{    int n,m;
	     cin >> n >> m;
	     string s,t;
	     cin >> s >> t;
	     int an=s.size();
	     int id=-1;
	     for(int i=0; i<t.size()-s.size()+1; i++)
	     {
	         int c=0;
	         for(int j=i; j<i+s.size(); j++)
	         {
	         	 if(s[j-i]!=t[j])c++;
	         } //cout << c<<" ";
	         an=min(an,c);
	         if(c==an)id=i;
	     } cout << an<<endl;
	     for(int j=id; j<i+s.size(); j++)
	     {
	     	if(s[j-id]!=t[j])cout << j-id<<" ";
	     }
	    //cin >> n;
	}
	// your code goes here
	return 0;
}


#include <iostream>
#include <vector>

using namespace std;

const int maxn = 1050;
vector <int> ans;
vector <int> ans2;
int n, m;
char s[maxn];
char t[maxn];

int main(){

    cin >> n >> m;
    cin >> s >> t;

    int n, m;

    for (int j = 0; j < n; j++ )
    	ans.push_back(j);
    int len = m - n + 1;
    for (int j = 0; j < len; j++ ) {
    	ans2.clear();
    	for ( int i = 0; i < n; i++ )
    		if ( s[i] != t[i + j] )
    			ans2.push_back( i );
    	if ( ans2.size() < ans.size() )
    		ans = ans2;
    }
    int sz = ans.size();
    cout << sz << endl;
    for ( int j = 0; j < sz; j++ )
    	cout << ans[j] + 1 << " ";
    return 0;
}


#include <iostream>
#include <vector>
#include <string>
#include <stdio.h>

using namespace std;

int n, m, i, j;
string s, t;

int main(){
    const int maxn = 1050;

    vector <int> ans;
    vector <int> temp;

    char s[maxn];
    char t[maxn];

    scanf ( "%d%d\n", &n, &m );
    gets(s);
    gets(t);

    for (j = 0; j < n; j++)
    	ans.push_back(j);

    for(j = 0; j < m - n + 1; j++ ) {
    	temp.clear();
    	for (i = 0; i < n; i++ )
    		if (s[i] != t[i + j])
    			temp.push_back( i );
    	if (temp.size() < ans.size() )
    		ans = temp;
    }
    int sz = ans.size();
    cout << sz << endl;
    for ( int j = 0; j < sz; j++ )
    	cout << ans[j] + 1 << " ";

    return 0;
}


#include <iostream>
#include <map>

using namespace std;

int n, m, i, j, k = 0, len;
string s, t;
int minn_s = 10000, minn_in = 10000;

int main(){

    cin >> n >> m;
    cin >> s >> t;

    int len = m - n + 1;
    for(i = 0; i <= len; i++){
        k = 0;
        for(j = 0; j < n; j++){
            if(s[j] != t[i + j])
                k++;
        }
        if(minn_s >= k){
            minn_in = i;
            minn_s = k;
        }
    }
    cout << minn_s << endl;
    for(i = minn_in; i < minn_in + n; i++){
        if(s[i - minn_in] != t[i])
            cout << i + 1 << " ";
    }
    return 0;
}


#include <iostream>
#include <map>

using namespace std;

int n, m, i, j, k = 0, len;
string s, t;
int minn_s = 10000, minn_in = 10000;

int main(){

    cin >> n >> m;
    cin >> s >> t;

    int len = m - n + 1;
    for(i = 0; i <= len; i++){
        k = 0;
        for(j = 0; j < n; j++){
            if(s[j] != t[i + j])
                k++;
        }
        if(minn_s >= k){
            minn_in = i;
            minn_s = k;
        }
    }

    cout << minn_s << endl;
    for(i = minn_in; i < minn_in + n; i++){
        if(s[i - minn_in] != t[i])
            cout << i + 1 - minn_in << " ";
    }
    return 0;
}


#include <bits/stdc++.h>

typedef int64_t ll;
typedef uint64_t ull;
typedef double db;
const double PI  =3.141592653589793238463;

using namespace std;

#ifdef LOCAL_PROJECT
#define CURTIME() cerr << el << "[TIME]: " << clock() * 1.0 / CLOCKS_PER_SEC << "s" << el
#else
#define CURTIME() ;
#endif

#define mp make_pair
#define mt make_tuple
#define pb push_back
#define fi first
#define se second
#define lb lower_bound
#define ub upper_bound
#define prs(n) cout << fixed << setprecision(n)
#define DEBUG(val) cerr << "#####\nRunning on Line " << __LINE__ << " in Function " << 	__FUNCTION__ << el << val << "#####";
#define el "\n"
#define sp " "

// RNG - for sum fun
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

// Combination calculate
ll nCr(ll n, ll r){
	// The fomular:
	// n! / (r! * (n-r)!)
	// Complexity: O(r)
	ll tmp = n-r;
	for(ll i = n-1; i > tmp; i--)
		n *= i;

	for(ll i = r-1; i > 1; i--)
		r *= i;
	return n/r;
}

int main(int argc, char const *argv[]) {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
#ifdef LOCAL_PROJECT
  freopen("in", "r", stdin);
	//freopen("out", "w", stdout);
#endif

	ll n, m;
	string s, t;
	cin >> n >> m >> s >> t;
	vector<ll> ans(m);
	for(ll i = 0; i <= m-n; i++){
		vector<ll> change;
		for(ll j = 0; j < n; j++)
			if(s[j] != t[j+i])
				change.pb(j+1);
		if(change.size() < ans.size())
			ans = change;
	}
	cout << ans.size() << el;
	for(auto i : ans)
		cout << i << sp;
	CURTIME();
	return 0;
}


#include <bits/stdc++.h>

typedef int64_t ll;
typedef uint64_t ull;
typedef double db;
const double PI  =3.141592653589793238463;

using namespace std;

#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define lb lower_bound
#define ub upper_bound
#define prs(n) cout << fixed << setprecision(n)
#define DEBUG(val) cerr << "#####\nRunning on Line " << __LINE__ << " in Function " << 	__FUNCTION__ << el << val << "#####";
#define el "\n"
#define sp " "

// RNG - for sum fun
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

// Combination calculate
ll nCr(ll n, ll r){
	// The fomular:
	// n! / (r! * (n-r)!)
	// Complexity: O(r)
	ll tmp = n-r;
	for(ll i = n-1; i > tmp; i--)
		n *= i;

	for(ll i = r-1; i > 1; i--)
		r *= i;
	return n/r;
}

int main(int argc, char const *argv[]) {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
#ifdef LOCAL_PROJECT
  freopen("in", "r", stdin);
//freopen("out", "w", stdout);
#endif

	ll m, n;
	string s, t;
	cin >> n >> m >> s >> t;
	vector<ll> ans(m+1, 0);
	for(ll i = 0; i <= m - n; i++){
		vector<ll> tmp;
		for(ll j = 0; j < n; j++)
			if(s[j] != t[i+j])
				tmp.pb(j+1);
		if(tmp.size() < ans.size())
			ans = tmp;
	}
	cout << ans.size() << el;
	for(auto i : ans)
		cout << i << sp;
	return 0;
}


#include <bits/stdc++.h>

typedef int64_t ll;
typedef uint64_t ull;
typedef double db;
const double PI  =3.141592653589793238463;

using namespace std;

#ifdef LOCAL_PROJECT
#define CURTIME() cerr << el << "[TIME]: " << clock() * 1.0 / CLOCKS_PER_SEC << "s" << el
#else
#define CURTIME() ;
#endif

#define mp make_pair
#define mt make_tuple
#define pb push_back
#define fi first
#define se second
#define lb lower_bound
#define ub upper_bound
#define prs(n) cout << fixed << setprecision(n)
#define DEBUG(val) cerr << "#####\nRunning on Line " << __LINE__ << " in Function " << 	__FUNCTION__ << el << val << "#####";
#define el "\n"
#define sp " "

// RNG - for sum fun
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

// Combination calculate
ll nCr(ll n, ll r){
	// The fomular:
	// n! / (r! * (n-r)!)
	// Complexity: O(r)
	ll tmp = n-r;
	for(ll i = n-1; i > tmp; i--)
		n *= i;

	for(ll i = r-1; i > 1; i--)
		r *= i;
	return n/r;
}

int main(int argc, char const *argv[]) {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
#ifdef LOCAL_PROJECT
  freopen("in", "r", stdin);
	//freopen("out", "w", stdout);
#endif

	ll n, m;
	string s, t;
	cin >> n >> m >> s >> t;
	vector<ll> ans(n+1);
	for(ll i = 0; i <= m-n; i++){
		vector<ll> change(0);
		for(ll j = 0; j < n; j++)
			if(s[j] != t[j+i])
				change.pb(j+1);
		if(change.size() <= ans.size())
			ans = change;
	}
	cout << ans.size() << el;
	for(auto i : ans)
		cout << i << sp;
	CURTIME();
	return 0;
}


#include<bits/stdc++.h>
#define ll long long
#define int long long
#define pb push_back
#define pii pair<int,int>
#define piii pair<pii,int>
#define f first
#define s second
#define vi vector<int>
using namespace std;
void beginn()
{
    int s,t;
    cin>>t>>s;
    string S,T;
    cin>>T>>S;
    vector<int>v(s-t+1,0);
    int mi=s;
    for(int i=0; i<=s-t; i++)
    {
        for(int j=i; j<i+t; j++)if(S[j]!=T[j-i])v[i]++;
        mi=min(v[i],mi);
    }
    cout<<mi<<endl;
    for(int i=0; i<=s-t; i++)if(v[i]==mi)
    {
        for(int j=i; j<i+t; j++)
        {
            if(S[j]!=T[j-i])cout<<j-i+1<<" ";
        }
        return;
    }
}
signed main()
{
    ios_base::sync_with_stdio();cin.tie(0);cout.tie(0);
    int t=1;
    while(t--)beginn();
    return 0;
}


#include<bits/stdc++.h>
#define ll long long
#define int long long
#define pb push_back
#define pii pair<int,int>
#define piii pair<pii,int>
#define f first
#define s second
#define vi vector<int>
using namespace std;
void beginn()
{
    string S,T;
    cin>>S>>T;
    int s=S.length(), t=T.length();
    vector<int>v(s-t,0);
    int mi=s;
    for(int i=0; i<s-t; i++)
    {
        for(int j=i; j<i+t; j++)if(S[j]!=T[j-i])v[i]++;
        mi=min(v[i],mi);
    }
    for(int i=0; i<s-t; i++)if(v[i]==mi)
    {
        for(int j=i; j<i+t; j++)
        {
            if(S[j]==T[j-i])cout<<S[j];
            else cout<<"?";
        }
        return;
    }
}
signed main()
{
    ios_base::sync_with_stdio();cin.tie(0);cout.tie(0);
    int t=1;
    while(t--)beginn();
    return 0;
}


#include<bits/stdc++.h>
#define ll long long
#define int long long
#define pb push_back
#define pii pair<int,int>
#define piii pair<pii,int>
#define f first
#define s second
#define vi vector<int>
using namespace std;
void beginn()
{
    string S,T;
    cin>>S>>T;
    int s=S.length(), t=T.length();
    vector<int>v(s-t,0);
    int mi=s;
    for(int i=0; i<s-t; i++)
    {
        for(int j=i; j<i+t; j++)if(S[j]!=T[j-i])v[i]++;
        mi=min(v[i],mi);
    }
    for(int i=0; i<s-t; i++)if(v[i]==mi)
    {
        for(int j=i; j<i+t; j++)
        {
            if(S[j]==T[j-i])cout<<S[j];
            else cout<<"?";
        }
        return 0;
    }
}
signed main()
{
    ios_base::sync_with_stdio();cin.tie(0);cout.tie(0);
    int t=1;
    while(t--)beginn();
    return 0;
}


#include<bits/stdc++.h>
#define ll long long
#define int long long
#define pb push_back
#define pii pair<int,int>
#define piii pair<pii,int>
#define f first
#define s second
#define vi vector<int>
using namespace std;
void beginn()
{
    int s,t;
    cin>>t>>s;
    string S,T;
    cin>>T>>S;
    vector<int>v(s-t,0);
    int mi=s;
    for(int i=0; i<s-t; i++)
    {
        for(int j=i; j<i+t; j++)if(S[j]!=T[j-i])v[i]++;
        mi=min(v[i],mi);
    }
    cout<<mi<<endl;
    for(int i=0; i<s-t; i++)if(v[i]==mi)
    {
        for(int j=i; j<i+t; j++)
        {
            if(S[j]!=T[j-i])cout<<j-i+1<<" ";
        }
        return;
    }
}
signed main()
{
    ios_base::sync_with_stdio();cin.tie(0);cout.tie(0);
    int t=1;
    while(t--)beginn();
    return 0;
}


#include<bits/stdc++.h>
#define ll long long
#define int long long
#define pb push_back
#define pii pair<int,int>
#define piii pair<pii,int>
#define f first
#define s second
#define vi vector<int>
using namespace std;
void beginn()
{
    int s,t;
    cin>>t>>s;
    string S,T;
    cin>>T>>S;
    vector<int>v(s-t,0);
    int mi=s;
    for(int i=0; i<=s-t; i++)
    {
        for(int j=i; j<i+t; j++)if(S[j]!=T[j-i])v[i]++;
        mi=min(v[i],mi);
    }
    cout<<mi<<endl;
    for(int i=0; i<s-t; i++)if(v[i]==mi)
    {
        for(int j=i; j<i+t; j++)
        {
            if(S[j]!=T[j-i])cout<<j-i+1<<" ";
        }
        return;
    }
}
signed main()
{
    ios_base::sync_with_stdio();cin.tie(0);cout.tie(0);
    int t=1;
    while(t--)beginn();
    return 0;
}


#include<bits/stdc++.h>
#define ll long long
#define int long long
#define pb push_back
#define pii pair<int,int>
#define piii pair<pii,int>
#define f first
#define s second
#define vi vector<int>
using namespace std;
void beginn()
{
    string S,T;
    cin>>S>>T;
    int s=S.length(), t=T.length();
    vector<int>v(s-t,0);
    int mi=s;
    for(int i=0; i<s-t; i++)
    {
        for(int j=i; j<i+t; j++)if(S[j]!=T[j-i])v[i]++;
        mi=min(v[i],mi);
    }
    cout<<mi<<endl;
    for(int i=0; i<s-t; i++)if(v[i]==mi)
    {
        for(int j=i; j<i+t; j++)
        {
            if(S[j]==T[j-i])cout<<j-i<<" ";
        }
        return;
    }
}
signed main()
{
    ios_base::sync_with_stdio();cin.tie(0);cout.tie(0);
    int t=1;
    while(t--)beginn();
    return 0;
}


#include <bits/stdc++.h>
#define ll long long int
#define N 1000000005

using namespace std;

int main ()
{
	int n, m, ans = 999999999, ind[1000], cnt;
	cin >> n >> m;
	string s, t;
	cin >> s >> t;
	for (int i=0; i<m-n+1; i++){
		cnt = 0;
		for (int j=i, k=0; k<n; k++, j++){
			if (s[k] != t[j]){
				ind[cnt] = k+1;
//				cout << ind[cnt] << endl;
				cnt++;
			}
		}
		if (cnt < ans){
			ans = cnt;
//			cout << ans << endl;
		}
	}
	cout << ans << endl;
	for (int i=0; i<ans ; i++){
		cout << ind[i] << " ";
	}
}


#include <bits/stdc++.h>
#define ll long long int
#define N 1000000005

using namespace std;

int main ()
{
	int n, m, ans = 999999999, ind[1000], cnt, cek;
	cin >> n >> m;
	string s, t;
	cin >> s >> t;
	for (int i=0; i<m-n+1; i++){
		cnt = 0;
		for (int j=i, k=0; k<n; k++, j++){
			if (s[k] != t[j]){
				cnt++;
			}
		}
		if (cnt < ans){
			ans = cnt;
			cek = i;
		}
	}
	int tes = 0;
	for (int i=0, j=0; j<n; j++, i++){
		if (s[j] != t[i]){
			ind[tes] = j+1;
			tes++;
		}
	}
	cout << ans << endl;
	for (int i=0; i<tes ; i++){
		cout << ind[i] << " ";
	}
}


#include <bits/stdc++.h>
#define ll long long int
#define N 1000000005

using namespace std;

int main ()
{
	int n, m, ans = 999999999, ind[1000], cnt, cek;
	cin >> n >> m;
	string s, t;
	cin >> s >> t;
	for (int i=0; i<m-n+1; i++){
		cnt = 0;
		for (int j=i, k=0; k<n; k++, j++){
			if (s[k] != t[j]){
				cnt++;
			}
		}
		if (cnt < ans){
			ans = cnt;
			cek = i;
		}
	}
	int tes = 0;
	for (int i=cek, j=0; j<n; j++, i++){
		if (s[j] != t[i]){
			ind[tes] = j+1;
			tes++;
		}
	}
	cout << ans << endl;
	for (int i=0; i<tes ; i++){
		cout << ind[i] << " ";
	}
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
#ifndef ONLINE_JUDGE
	if (fopen("input.txt", "r"))
	{
		freopen ("input.txt" , "r" , stdin);
		freopen ("output.txt" , "w" , stdout);
	}
#endif
	// _____________________________CODE STARTS________________________________-

	int n, m;
	cin >> n >> m;
	string s, t;
	cin >> s >> t;
	int cnt = 10000000;
	vector<int> ans;
	for (int i = 0; i < m; ++i)
	{
		/* code */
		if (i + n > m)
			break;
		vector<int> v;
		int var = 0;
		for (int j = i; j < i + n; ++j)
		{
			/* code */
			if (t[j] != s[j - i])
			{
				var++;
				v.push_back(j);
			}
		}
		if (var < cnt)
		{
			cnt = var;
			ans.clear();
			for (int i1 = 0; i1 < v.size(); ++i1)
			{
				/* code */
				ans.push_back(v[i1] + 1);
			}
		}
	}
	cout << cnt << endl;
	for (int i = 0; i < ans.size(); ++i)
	{
		/* code */
		cout << ans[i] << " ";
	}

	return 0;
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
#ifndef ONLINE_JUDGE
	if (fopen("input.txt", "r"))
	{
		freopen ("input.txt" , "r" , stdin);
		freopen ("output.txt" , "w" , stdout);
	}
#endif
	// _____________________________CODE STARTS________________________________-

	int n, m;
	cin >> n >> m;
	string s, t;
	cin >> s >> t;
	int cnt = 10000000;
	vector<int> ans;
	for (int i = 0; i < m; ++i)
	{
		/* code */
		if (i + n >= m)
			break;
		vector<int> v;
		int var = 0;
		for (int j = i; j < i + n; ++j)
		{
			/* code */
			if (t[j] != s[j - i])
			{
				var++;
				v.push_back(j);
			}
		}
		if (var < cnt)
		{
			cnt = var;
			ans.clear();
			for (int i1 = 0; i1 < v.size(); ++i1)
			{
				/* code */
				ans.push_back(v[i1]);
			}
		}
	}
	cout << cnt << endl;
	for (int i = 0; i < ans.size(); ++i)
	{
		/* code */
		cout << ans[i] << " ";
	}

	return 0;
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
#ifndef ONLINE_JUDGE
	if (fopen("input.txt", "r"))
	{
		freopen ("input.txt" , "r" , stdin);
		freopen ("output.txt" , "w" , stdout);
	}
#endif
	// _____________________________CODE STARTS________________________________-

	int n, m;
	cin >> n >> m;
	string s, t;
	cin >> s >> t;
	int cnt = 10000000;
	vector<int> ans;
	for (int i = 0; i < m; ++i)
	{
		/* code */
		if (i + n > m)
			break;
		vector<int> v;
		int var = 0;
		for (int j = i; j < i + n; ++j)
		{
			/* code */
			if (t[j] != s[j - i])
			{
				var++;
				v.push_back(j - i);
			}
		}
		if (var < cnt)
		{
			cnt = var;
			ans.clear();
			for (int i1 = 0; i1 < v.size(); ++i1)
			{
				/* code */
				ans.push_back(v[i1] + 1);
			}
		}
	}
	cout << cnt << endl;
	for (int i = 0; i < ans.size(); ++i)
	{
		/* code */
		cout << ans[i] << " ";
	}

	return 0;
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
#ifndef ONLINE_JUDGE
	if (fopen("input.txt", "r"))
	{
		freopen ("input.txt" , "r" , stdin);
		freopen ("output.txt" , "w" , stdout);
	}
#endif
	// _____________________________CODE STARTS________________________________-

	int n, m;
	cin >> n >> m;
	string s, t;
	cin >> s >> t;
	int cnt = 10000000;
	vector<int> ans;
	for (int i = 0; i < m; ++i)
	{
		/* code */
		if (i + n > m)
			break;
		vector<int> v;
		int var = 0;
		for (int j = i; j < i + n; ++j)
		{
			/* code */
			if (t[j] != s[j - i])
			{
				var++;
				v.push_back(j - i + 1);
			}
		}
		if (var < cnt)
		{
			cnt = var;
			ans.clear();
			for (int i1 = 0; i1 < v.size(); ++i1)
			{
				/* code */
				ans.push_back(v[i1] + 1);
			}
		}
	}
	cout << cnt << endl;
	for (int i = 0; i < ans.size(); ++i)
	{
		/* code */
		cout << ans[i] << " ";
	}

	return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define int long long

int32_t main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n,m;
    cin>>n>>m;
    string s,t;
    cin>>s>>t;
    int mx=0;
    for(int i=0;i<m-n;i++){
        int cnt=0;
        for(int j=i;j<i+n;j++){
            if(s[j-i]==t[j]) cnt++;
        }
        mx=max(mx,cnt);
    }
    cout<<n-mx;
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define int long long

int32_t main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n,m;
    cin>>n>>m;
    string s,t;
    cin>>s>>t;
    int mx=n;
    vector<int> ans{};
    for(int i=0;i<=m-n;i++){
        int cnt=0;
        vector<int> tmp{};
        for(int j=i;j<i+n;j++){
            if(s[j-i]!=t[j]){
                cnt++;
                tmp.push_back(j-i+1);
            }
        }
        if(cnt<=mx){
           ans=tmp;
           mx=cnt;
        }
    }
    cout<<mx<<endl;
    for(int i=0;i<ans.size();i++){
        cout<<ans[i]<<" ";
    }
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define int long long

int32_t main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n,m;
    cin>>n>>m;
    string s,t;
    cin>>s>>t;
    int mx=n;
    vector<int> ans{};
    for(int i=0;i<m-n;i++){
        int cnt=0;
        vector<int> tmp{};
        for(int j=i;j<i+n;j++){
            if(s[j-i]!=t[j]){
                cnt++;
                tmp.push_back(j-i+1);
            }
        }
        if(cnt<=mx){
           ans=tmp;
           mx=cnt;
        }
    }
    cout<<mx<<endl;
    for(int i=0;i<ans.size();i++){
        cout<<ans[i]<<" ";
    }
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define int long long

int32_t main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n,m;
    cin>>n>>m;
    string s,t;
    cin>>s>>t;
    int mx=n;
    vector<int> ans{};
    for(int i=0;i<m-n;i++){
        int cnt=0;
        vector<int> tmp{};
        for(int j=i;j<i+n;j++){
            if(s[j-i]!=t[j]){
                cnt++;
                tmp.push_back(j+1);
            }
        }
        if(cnt<=mx){
           ans=tmp;
           mx=cnt;
        }
    }
    cout<<mx<<endl;
    for(int i=0;i<ans.size();i++){
        cout<<ans[i]<<" ";
    }
    return 0;
}


# include <bits/stdc++.h>
# define ll long long
using namespace std;
int main(){
	ll n , m; string a , b;
	cin >> n >> m >> a >> b;
	vector < int > ans(n + 1);
	for(int i = 0; i + n - 1 < m; i ++){
		vector < int > count;
		for(int j = 0; j < n; j ++){
			if(b[i + j] != a[j])count.push_back(j + 1);
		}
		if((ll)ans.size() > (ll)count.size()){
			ans = count;
		}
	}
	cout << ans.size() << '\n';
	for(int i = 0; i < ans.size(); i ++) cout << ans[i] << ' ';
}


#include<iostream>
#include<cstring>
using namespace std;
int main()
{
	int n,m,i,j,s=0,max=0;
	cin>>n>>m;
	char a[n],b[m];
	cin>>a>>b;
	int q;
	for(i=0;i<=m-n;i++)
	{
		s=0;
		for(j=0;j<n;j++)
		{
			if(a[j]==b[i+j])
				s++;
		}
		if(max<s)
		{
			max=s;
			q=i;
		}
	}
	cout<<n-max<<endl;
	for(i=q,j=0;j<n;i++,j++)
		if(a[j]!=b[i])
			cout<<j+1<<" ";
}


#include <bits/stdc++.h>
using namespace std;
int main(){
	int n,m;
	cin>>n>>m;
	string s, t;
	queue <int> q;
	queue <int> qq;
	for(int i=0;i<n;i++)
		cin>>s[i];
	for(int i=0;i<m;i++)
		cin>>t[i];
	int ans=10000;
	for(int i=0;i<=m-n;i++)
	{	int temp1=0;
		while(!q.empty())	q.pop();
		for(int j=0;j<n;j++)
		{	//cout<<"s[j] "<<s[j]<<" t[i] "<<t[i+j]<<" ans "<<temp1<<endl;
			if(s[j]!=t[i+j])
			{q.push(j+1);
			 temp1++;}
			 if(temp1>ans)	break;
		}
		if(temp1<ans)	qq=q;
		ans=min(ans,temp1);
	}
	cout<<ans<<endl;
	while(!qq.empty()){
		cout<<qq.front()<<" ";
		qq.pop();
	}

	return 0;}


#include <bits/stdc++.h>
using namespace std;
int main(){
	int n,m;
	cin>>n>>m;
	string s, t;
	queue <int> q;
	queue <int> qq;
	for(int i=0;i<n;i++)
		cin>>s[i];
	for(int i=0;i<m;i++)
		cin>>t[i];
	int ans=10000;
	int temp2;
	for(int i=0;i<=m-n;i++)
	{	int temp1=0;
		//while(!q.empty())	q.pop();
		for(int j=0;j<n;j++)
		{	//cout<<"s[j] "<<s[j]<<" t[i] "<<t[i+j]<<" ans "<<temp1<<endl;
			if(s[j]!=t[i+j])
			{//q.push(j+1);
			 if(temp1<ans) temp2=i;
			 temp1++;}
			 if(temp1>=ans)	break;
		}
		//if(temp1<ans)	qq=q;
		ans=min(ans,temp1);
		//if(ans==0) break;
	}
	for(int k=0;k<n;k++)
		if(s[k]!=t[temp2+k])
			qq.push(k+1);
	cout<<ans<<endl;
	while(!qq.empty()){
		cout<<qq.front()<<" ";
		qq.pop();
	}

	return 0;}


#include <bits/stdc++.h>
using namespace std;
int main(){
	int n,m;
	cin>>n>>m;
	string s, t;
	queue <int> q;
	queue <int> qq;
	for(int i=0;i<n;i++)
		cin>>s[i];
	for(int i=0;i<m;i++)
		cin>>t[i];
	int ans=10000;
	for(int i=0;i<=m-n;i++)
	{	int temp1=0;
		while(!q.empty())	q.pop();
		for(int j=0;j<n;j++)
		{	//cout<<"s[j] "<<s[j]<<" t[i] "<<t[i+j]<<" ans "<<temp1<<endl;
			if(s[j]!=t[i+j])
			{q.push(j+1);
			 temp1++;}
			 if(temp1>=ans)	break;
		}
		if(temp1<ans)	qq=q;
		ans=min(ans,temp1);
		if(ans==0) break;
	}
	cout<<ans<<endl;
	while(!qq.empty()){
		cout<<qq.front()<<" ";
		qq.pop();
	}

	return 0;}


#include<bits/stdc++.h>
#define f(i,a,b) for(long long int i=a;i<b;i++)
#define ll long long int
#define mod 1000000007
#define pb push_back
#define mp make_pair

using namespace std;
ll exp(ll a,ll b,ll m)
{	if(b==0)
	{
		return 1;
	}
	ll temp =exp(a,b/2,m);
	temp=(temp*temp)%m;
	if(b&1)
	{
		return (temp*(a%m))%m;
	}
	return temp; }

int main()
{
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);

ll n,m;
cin >> n>>m;
string s;
string t;
cin >> s>>t;

ll maxa = 0;
ll index=0;

f(i,0,m-n+1){
	ll temp=0;
f(j,i,i+n){
if(t[j]==s[j-i]){
temp++;
}

}

if(temp>maxa){
	maxa=temp;
	index=i;
}

}

cout << n-maxa<<endl;
vector<int>v;

f(i,0,n){
if(s[i]!=t[index+i]){
	v.pb(i+1);
}

}

f(i,0,v.size()){
	cout << v[i]<<" ";
}
}


#include <bits/stdc++.h>
using namespace std;
int main(){
	int n,m;
	cin>>n>>m;
	string s, t;
	queue <int> q;
	queue <int> qq;
	for(int i=0;i<n;i++)
		cin>>s[i];
	for(int i=0;i<m;i++)
		cin>>t[i];
	int ans=10000;
	for(int i=0;i<=m-n;i++)
	{	int temp1=0;
		while(!q.empty())	q.pop();
		for(int j=0;j<n;j++)
		{	//cout<<"s[j] "<<s[j]<<" t[i] "<<t[i+j]<<" ans "<<temp1<<endl;
			if(s[j]!=t[i+j])
			{q.push(j+1);
			 temp1++;}
		}
		if(temp1<ans)	qq=q;
		ans=min(ans,temp1);
	}
	cout<<ans<<endl;
	while(!qq.empty()){
		cout<<qq.front()<<" ";
		qq.pop();
	}

	return 0;}


#include <bits/stdc++.h>
using namespace std;
int main(){
	int n,m;
	cin>>n>>m;
	string s, t;
	queue <int> q;
	queue <int> qq;
	for(int i=0;i<n;i++)
		cin>>s[i];
	for(int i=0;i<m;i++)
		cin>>t[i];
	int ans=10000;
	for(int i=0;i<=m-n;i++)
	{	int temp1=0;
		while(!q.empty())	q.pop();
		for(int j=0;j<n;j++)
		{	//cout<<"s[j] "<<s[j]<<" t[i] "<<t[i+j]<<" ans "<<temp1<<endl;
			if(s[j]!=t[i+j])
			{q.push(j+1);
			 temp1++;}
			 if(temp1>=ans)	break;
		}
		if(temp1<ans)	qq=q;
		ans=min(ans,temp1);
	}
	cout<<ans<<endl;
	while(!qq.empty()){
		cout<<qq.front()<<" ";
		qq.pop();
	}

	return 0;}


#include <bits/stdc++.h>
using namespace std;
int main(){
	ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);

	int n,m;
	cin>>n>>m;
	string s, t;
	queue <int> q;
	queue <int> qq;
	for(int i=0;i<n;i++)
		cin>>s[i];
	for(int i=0;i<m;i++)
		cin>>t[i];
	int ans=10000;
	int temp2;
	for(int i=0;i<=m-n;i++)
	{	int temp1=0;
		for(int j=0;j<n;j++)
		{
			if(s[j]!=t[i+j])
			{//q.push(j+1);
			 temp1++;}
			 if(temp1>=ans)	break;
		}
		if(temp1<ans) temp2=i;
		ans=min(ans,temp1);
	}
	for(int k=0;k<n;k++)
		if(s[k]!=t[temp2+k])
			qq.push(k+1);
	cout<<ans<<endl;
	while(!qq.empty()){
		cout<<qq.front()<<" ";
		qq.pop();
	}

	return 0;}


#include <bits/stdc++.h>
using namespace std;
int main(){
	int n,m;
	cin>>n>>m;
	string s, t;
	queue <int> q;
	queue <int> qq;
	for(int i=0;i<n;i++)
		cin>>s[i];
	for(int i=0;i<m;i++)
		cin>>t[i];
	int ans=10000;
	int temp2;
	for(int i=0;i<=m-n;i++)
	{	int temp1=0;
		for(int j=0;j<n;j++)
		{
			if(s[j]!=t[i+j])
			{//q.push(j+1);
			 temp1++;}
			 if(temp1>=ans)	break;
		}
		if(temp1<ans) temp2=i;
		ans=min(ans,temp1);
	}
	for(int k=0;k<n;k++)
		if(s[k]!=t[temp2+k])
			qq.push(k+1);
	cout<<ans<<endl;
	while(!qq.empty()){
		cout<<qq.front()<<" ";
		qq.pop();
	}

	return 0;}


#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n, m;
    cin >> n >> m;

    string s, t;
    cin >> s >> t;

    int miss_match = s.size();
    vector<int> diff;
    for(int i = 1; i <= s.size(); i++) diff.push_back(i);

    for(int i = 0; i <= t.size() - s.size(); i++) {
        int temp_miss_match = 0;
        vector<int> temp_diff;
        for(int j = 0; j < s.size(); j++) {
            if (t[i + j] == '?') continue;
            if(t[i + j] != s[j]) {
                temp_miss_match += 1;
                temp_diff.push_back(j+1);
            }
        }
        if (miss_match > temp_miss_match) {
            miss_match = temp_miss_match;;
            diff = temp_diff;
        }
    }

    cout << diff.size() << '\n';
    for(int v : diff) cout << v << " ";
    return 0;
}


#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n, m;
    cin >> n >> m;

    string s, t;
    cin >> s >> t;

    int max_match = 0;
    vector<int> diff;

    for(int i = 0; i <= t.size() - s.size(); i++) {
        if (t[i] == s[0] || t[i] == '?') {
            int temp_match = 0;
            vector<int> temp_diff;
            for(int j = 0; j < s.size(); j++) {
                if(t[i + j] == s[j]) {
                    temp_match += 1;
                } else {
                    temp_diff.push_back(j + 1);
                }
            }
            if (temp_match > max_match) {
                max_match = temp_match;
                diff = temp_diff;
            }
        }
    }

    cout << diff.size() << '\n';
    for(int v : diff) cout << v << " ";
    return 0;
}


#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n, m;
    cin >> n >> m;

    string s, t;
    cin >> s >> t;

    int miss_match = s.size();
    vector<int> diff;
    for(int i = 1; i <= s.size(); i++) diff.push_back(i);

    for(int i = 0; i <= t.size() - s.size(); i++) {
        if (t[i] == s[0] || t[i] == '?') {
            int temp_miss_match = 0;
            vector<int> temp_diff;
            for(int j = 0; j < s.size(); j++) {
                if (t[i + j] == '?') continue;
                if(t[i + j] != s[j]) {
                    temp_miss_match += 1;
                    temp_diff.push_back(j+1);
                }
            }
            if (miss_match > temp_miss_match) {
                miss_match = temp_miss_match;;
                diff = temp_diff;
            }
        }
    }

    cout << diff.size() << '\n';
    for(int v : diff) cout << v << " ";
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define ll long long

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	string s,t;
	int n,m;
	//freopen("in.txt","r",stdin);
	while(cin>>n>>m){
		cin>>s;
		cin>>t;
		int ans=n,sum,b;
		for(int i=0;i<m-n+1;i++){
			int h=i;
			sum=0;
			for(int j=0;j<n;j++){
				if(s[j]!=t[h++]) sum++;
			}
			if(ans>sum){
				ans=sum;
				b=i;
			}
		}
		cout<<ans<<endl;
		sum=0;
		for(int i=0;i<n;i++,b++){
			if(s[i]!=t[b]) cout<<i+1<<' ';
		}
		cout<<endl;
	}
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	string s,t;
	int n,m;
	//freopen("in.txt","r",stdin);
	while(cin>>n>>m){
		cin>>s;
		cin>>t;
		int ans=n,sum,b;
		for(int i=0;i<m-n+1;i++){
			int h=i;
			sum=0;
			for(int j=0;j<n;j++){
				if(s[j]!=t[h++]) sum++;
			}
			if(ans>=sum){
				ans=sum;
				b=i;
			}
			if(ans==0) break;
		}
		cout<<ans<<endl;
		if(ans)
		{
			for(int i=0;i<n;i++,b++){
			if(s[i]!=t[b]) cout<<i+1<<' ';
		}
		cout<<endl;
		}
	}
	return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	string s,t;
	int n,m;
	//freopen("in.txt","r",stdin);
	while(cin>>n>>m){
		cin>>s;
		cin>>t;
		int ans=n,sum,b;
		for(int i=0;i<m-n+1;i++){
			int h=i;
			sum=0;
			for(int j=0;j<n;j++){
				if(s[j]!=t[h++]) sum++;
			}
			if(ans>sum){
				ans=sum;
				b=i;
			}
		}
		cout<<ans<<endl;
		if(ans)
		{
			for(int i=0;i<n;i++,b++){
			if(s[i]!=t[b]) cout<<i+1<<' ';
		}
		cout<<endl;
		}
	}
	return 0;
}


#include<iostream>
#include<string>
#include<vector>
using namespace std;
vector<int> v1;
vector<int> v2;
int main()
{
	int n,m;
	string s,t;
	cin>>n>>m;
	cin>>s>>t;
	int _min=n;
	for(int i=0;i<n;i++)
	{
		//µÚi¸ö×Ö·û¿ªÊ¼Æ¥Åä
		for(int j=i;j<=m-n+i;j++)
		{
			int tt=i;
			v2.clear();
			if(s[i]==t[j])
			{
				int s_index=i;
				int t_index=j;
				while(s_index<n)
				{
					if(s[s_index++]!=t[t_index++])
					{
						tt++;
						v2.emplace_back(s_index);
					}
				}
				if(_min>tt)
				{
					_min=tt;
					v1.swap(v2);
				}
			}
		}
	}
	cout<<_min<<endl;
	for(int i:v1)
		cout<<i<<" ";
	cout<<endl;
}


#include<iostream>
#include<string>
#include<vector>
using namespace std;
vector<int> v1;
vector<int> v2;
int main()
{
	int n,m;
	string s,t;
	cin>>n>>m;
	cin>>s>>t;
	int _min=n;
	for(int i=1;i<=n;i++)
		v1.emplace_back(i);
	for(int i=0;i<n;i++)
	{
		//µÚi¸ö×Ö·û¿ªÊ¼Æ¥Åä
		for(int j=i;j<=m-n+i;j++)
		{
			int tt=i;
			v2.clear();
			if(s[i]==t[j])
			{
				int s_index=i;
				int t_index=j;
				while(s_index<n)
				{
					if(s[s_index++]!=t[t_index++])
					{
						tt++;
						v2.emplace_back(s_index);
					}
				}
				if(_min>tt)
				{
					_min=tt;
					v1.swap(v2);
				}
			}
		}
	}
	cout<<_min<<endl;
	for(int i:v1)
		cout<<i<<" ";
	cout<<endl;
}


#include<iostream>
#include<string>
#include<vector>
using namespace std;
vector<int> v1;
vector<int> v2;
int main()
{
	int n,m;
	string s,t;
	cin>>n>>m;
	cin>>s>>t;
	int _min=n;
	for(int i=1;i<=n;i++)
		v1.emplace_back(i);
	for(int i=0;i<n;i++)
	{
		//µÚi¸ö×Ö·û¿ªÊ¼Æ¥Åä
		for(int j=i;j<=m-n+i;j++)
		{
			int tt=i;
			v2.clear();
			for(int ii=1;ii<=i;ii++)
				v2.emplace_back(ii);
			if(s[i]==t[j])
			{
				int s_index=i;
				int t_index=j;
				while(s_index<n)
				{
					if(s[s_index++]!=t[t_index++])
					{
						tt++;
						v2.emplace_back(s_index);
					}
				}
				if(_min>tt)
				{
					_min=tt;
					v1.swap(v2);
				}
			}
		}
	}
	cout<<_min<<endl;
	for(int i:v1)
		cout<<i<<" ";
	cout<<endl;
}


#include<iostream>
#include<string>
#include<vector>
using namespace std;
vector<int> v1;
vector<int> v2;
int main()
{
	int n,m;
	string s,t;
	cin>>n>>m;
	cin>>s>>t;
	int _min=0x3f3f3f3f;
	for(int i=0;i<n;i++)
	{
		//µÚi¸ö×Ö·û¿ªÊ¼Æ¥Åä
		for(int j=i;j<=m-n+i;j++)
		{
			int tt=i;
			v2.clear();
			if(s[i]==t[j])
			{
				int s_index=i;
				int t_index=j;
				while(s_index<n)
				{
					if(s[s_index++]!=t[t_index++])
					{
						tt++;
						v2.emplace_back(s_index);
					}
				}
				if(_min>tt)
				{
					_min=tt;
					v1.swap(v2);
				}
			}
		}
	}
	cout<<_min<<endl;
	for(int i:v1)
		cout<<i<<" ";
	cout<<endl;
}


#include <bits/stdc++.h>
#include<math.h>
#include<string>
using namespace std;
#define ll long long
#define md 1000000007
#define ENSHREWD ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int main()
{
    ENSHREWD
    string s,a,b;
    int n,i,j,t,f=0,m=10000,ss,r=0;
    cin>>n>>t;
    cin>>s;
    cin>>a;
    if(n==t)
    {
        for(i=0;i<n;i++)
            if(s[i]!=a[i])
            r++;
            cout<<r<<endl;
            for(i=0;i<n;i++)
            if(s[i]!=a[i])
                cout<<i+1<<" ";
    exit(0);
    }
    for(i=0;i<t;i++)
    {
        for(j=0;j<n;j++)
        {
            if(a[i+j]!=s[j])
            {
                ++f;
            }
        }
    if(m>f)
    {
    m=f;
    ss=i;
    }
    f=0;
    }
    cout<<m<<endl;
    for(i=0;i<n;i++)
        if(a[ss+i]!=s[i])
        cout<<i+1<<" ";

    return 0;
}


#include <bits/stdc++.h>
#include<math.h>
#include<string>
using namespace std;
#define ll long long
#define md 1000000007
#define ENSHREWD ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int main()
{
    ENSHREWD
    string s,a,b;
    int n,i,j,t,f=0,m=10000,ss,r=0;
    cin>>n>>t;
    cin>>s;
    cin>>a;
    if(n==t)
    {
        for(i=0;i<n;i++)
            if(s[i]!=a[i])
            r++;
            cout<<r<<endl;
            for(i=0;i<n;i++)
            if(s[i]!=a[i])
                cout<<i+1<<" ";

    }
    for(i=0;i<t;i++)
    {
        for(j=0;j<n;j++)
        {
            if(a[i+j]!=s[j])
            {
                ++f;
            }
        }
    if(m>f)
    {
    m=f;
    ss=i;
    }
    f=0;
    }
    cout<<m<<endl;
    for(i=0;i<n;i++)
        if(a[ss+i]!=s[i])
        cout<<i+1<<" ";

    return 0;
}


#include <bits/stdc++.h>
#include<math.h>
#include<string>
using namespace std;
#define ll long long
#define md 1000000007
#define ENSHREWD ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int main()
{
    ENSHREWD
    string s,a,b;
    int n,i,j,t,f=0,m=10000,ss,r=0;
    cin>>n>>t;
    cin>>s;
    cin>>a;
    for(i=0;i<t;i++)
    {
        for(j=0;j<n;j++)
        {
            if(a[i+j]!=s[j])
            {
                ++f;
            }
        }
    if(m>f)
    {
    m=f;
    ss=i;
    }
    f=0;
    }
    cout<<m<<endl;
    for(i=0;i<n;i++)
        if(a[ss+i]!=s[i])
        cout<<i+1<<" ";
return 0;
}


#include <bits/stdc++.h>
#include<math.h>
#include<string>
using namespace std;
#define ll long long
#define md 1000000007
#define ENSHREWD ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int main()
{
    ENSHREWD
    string s,a,b;
    int n,i,j,t,f=0,m=10000,ss;
    cin>>n>>t;
    cin>>s;
    cin>>a;
    for(i=0;i<t;i++)
    {
        for(j=0;j<n;j++)
        {
            if(a[i+j]!=s[j])
            {
                ++f;
            }
        }
    if(m>f)
    {
    m=f;
    ss=i;
    }
    f=0;
    }
    cout<<m<<endl;
    for(i=0;i<n;i++)
        if(a[ss+i]!=s[i])
        cout<<i+1<<" ";

    return 0;
}


#include <bits/stdc++.h>
#include<math.h>
#include<string>
using namespace std;
#define ll long long
#define md 1000000007
#define ENSHREWD ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int main()
{
    ENSHREWD
    string s,a,b;
    int n,i,j,t,f=0,m=10000,ss,r=0;
    cin>>n>>t;
    cin>>s;
    cin>>a;
    for(i=0;i<=t-n;i++)
    {
        for(j=0;j<n;j++)
        {
            if(a[i+j]!=s[j])
            {
                ++f;
            }
        }
    if(m>f)
    {
    m=f;
    ss=i;
    }
    f=0;
    }
    cout<<m<<endl;
    for(i=0;i<n;i++)
        if(a[ss+i]!=s[i])
        cout<<i+1<<" ";
return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
    ll a,b,c;
    string s,t,ss;
    map<char,bool>m;
    scanf("%lld %lld",&a,&b);
    cin>>s>>t;
    for(ll i=0;i<a;i++)
    {
        char ch=s[i];
        m[ch]=true;
    }
    ///vector<string>ans;
    vector<pair<ll,string> >ans;
    for(ll i=0;i<b;i++)
    {
        if(m[t[i]]==true)
        {
            ss.clear();
            ll x=0;
            ll count=0;
            for(ll j=i;j<b && j<i+a;j++,x++)
            {
                ///cout<<t[j]<<" "<<s[x]<<endl;
                if(m[t[j]]==true  && t[j]==s[x]) {ss+=t[j];
                count++;
                }
                else ss+='?';
            }
            ///cout<<ss<<endl;
            if(ss.size()==a)
            ans.push_back(make_pair(count,ss));
        }
    }
    ll l=ans.size();
    ///cout<<l<<endl;
    sort(ans.rbegin(),ans.rend());
    if(ans.size()==0){
        printf("%lld\n",a);
        for(ll i=1;i<=a;i++) printf("%lld ",i);
        printf("\n");
        return 0;
    }
    string ankon=ans[0].second;

            printf("%lld\n",a-ans[0].first);
        for(ll i=0;i<ankon.size();i++)
        {
            if(s[i]!=ankon[i]){
                printf("%lld ",i+1);
            }
        }
    printf("\n");

    return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
    ll n,m,k,x,y,maxi,mini,s,xx;
    bool flag=0;
    cin>>n>>m>>k>>x>>y;
    ll a=(k/m);
     s=(k/m);
    ll yy=(k%m);
    cout<<a<<endl;
    if(n>=a){
         mini=(n/a);
         maxi=(n/a);
         s=n/a;
         xx=(n%a);
    }
    else {xx=a%n;
    mini=a/n;
    maxi=a/n;
    s=(a/n);
         cout<<"ankon "<<maxi<<endl;
    }
    if(yy!=0) xx++;
    cout<<maxi<<" "<<mini<<" "<<s<<endl;
    cout<<xx<<" "<<x<<" "<<yy<<" "<<y<<endl;
    if(xx==0 && yy==0) flag=1;
    else if(x<=xx && y<=yy) s++;
    if(flag==0) {
        maxi+=1;
    }
    printf("%lld %lld %lld\n",maxi,mini,s);
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
    ll a,b,c;
    string s,t,ss;
    map<char,bool>m;
    scanf("%lld %lld",&a,&b);
    cin>>s>>t;
    for(ll i=0;i<a;i++)
    {
        char ch=s[i];
        m[ch]=true;
    }
    ///vector<string>ans;
    vector<pair<ll,string> >ans;
    for(ll i=0;i<b;i++)
    {

            ss.clear();
            ll x=0;
            ll count=0;
            for(ll j=i;j<b && j<i+a;j++,x++)
            {
                ///cout<<t[j]<<" "<<s[x]<<endl;
                if(m[t[j]]==true  && t[j]==s[x]) {ss+=t[j];
                count++;
                }
                else ss+='?';
            }
            ///cout<<ss<<endl;
            if(ss.size()==a)
            ans.push_back(make_pair(count,ss));

    }
    ll l=ans.size();
    ///cout<<l<<endl;
    sort(ans.rbegin(),ans.rend());
    if(ans.size()==0){
        printf("%lld\n",a);
        for(ll i=1;i<=a;i++) printf("%lld ",i);
        printf("\n");
        return 0;
    }
    string ankon=ans[0].second;

            printf("%lld\n",a-ans[0].first);
        for(ll i=0;i<ankon.size();i++)
        {
            if(s[i]!=ankon[i]){
                printf("%lld ",i+1);
            }
        }
    printf("\n");

    return 0;
}


	#include <bits/stdc++.h>
	#include <cstdio>
	#include <cstring>
	#include <cmath>
	#include <cstring>
	#include <chrono>
	#include <complex>
	#define endl "\n"
	#define ll long long int
	#define vi vector<int>
	#define vll vector<ll>
	#define vvi vector < vi >
	#define pii pair<int,int>
	#define pll pair<long long, long long>
	#define mod 1000000007
	#define inf 1000000000000000001;
	#define all(c) c.begin(),c.end()
	#define mp(x,y) make_pair(x,y)
	#define mem(a,val) memset(a,val,sizeof(a))
	#define eb emplace_back
	#define f first
	#define s second

	using namespace std;
	int main()
	{

		int n,k;

		cin>>n>>k;

		string s1,s2;

		cin>>s1>>s2;

		//vector.clear()

		vector<int> v;

		int max=1000000;

		for(int i=0;i<k;i++) {
			int count=0;
				vector<int> p;
			for(int j=i,y=0;y<n,j<i+n-1;j++,y++) {
				if(s1[j]!=s2[y]) {
					count++;
					p.eb(y+2);
				}
			}

			if(count<=max) {
				v.clear();
				max=count;
				for(int j=0;j<p.size();j++) {
					v.eb(p[j]);
				}
			}

		}

		cout<<max<<endl;

		for(int i=0;i<max;i++) {
			cout<<v[i]<<" ";
		}

		return 0;
	}


#include<iostream>
#include<cstring>
using namespace std;
int main()
{
	int n,m,i,j,s=0,max=0;
	cin>>n>>m;
	char a[n],b[m];
	cin>>a>>b;
	int q;
	for(i=0;i<=m-n;i++)
	{
		s=0;
		for(j=0;j<n;j++)
		{
			if(a[j]==b[i+j])
				s++;
		}
		if(max<s)
		{
			max=s;
			q=i;
		}
	}
	cout<<n-max<<endl;
	for(i=q,j=0;j<n;i++,j++)
		if(a[j]!=b[i])
			cout<<j+1<<" ";
}


#include<iostream>
#include<cstring>
using namespace std;
int main()
{
	int n,m,i,j,s=0,max=0;
	cin>>n>>m;
	char a[n],b[m];
	cin>>a>>b;
	int q;
	for(i=0;i<=m-n;i++)
	{
		s=0;
		for(j=0;j<n;j++)
		{
			if(a[j]==b[i+j])
				s++;
		}
		if(max<s)
		{
			max=s;
			q=i;
		}//
	}
	cout<<n-max<<endl;
	for(i=q,j=0;j<n;i++,j++)
		if(a[j]!=b[i])
			cout<<j+1<<" ";
}


#include <bits/stdc++.h>
using namespace std;

#define pb push_back
#define eb emplace_back
#define mp make_pair
#define ll long long
#define F first
#define S second

int main(void)
{

	int n, m;
	scanf("%d %d", &n, &m);
	string s, t;
	cin >> s >> t;
	vector<int> ans;
	vector<int> newans;
	for (int i=0; i<n; i++)
		ans.pb(i);

	for (int i=0; i<=t.size() - s.size(); i++)
	{
		newans.clear();
		for (int j=0; j<n; j++)
			if (s[j] != t[i+j])
				newans.eb(j);

		if (newans.size() < ans.size())
			ans = newans;

	}
	printf("%d\n", ans.size());
	for (int i=0; i<ans.size(); i++)
		printf("%d ", ans[i]+1);

	return false;
}


#include <bits/stdc++.h>
using namespace std;

#define pb push_back
#define eb emplace_back
#define mp make_pair
#define ll long long
#define ull unsigned long long
#define F first
#define S second
void __print(int x) {cerr << x;}
void __print(long x) {cerr << x;}
void __print(long long x) {cerr << x;}
void __print(unsigned x) {cerr << x;}
void __print(unsigned long x) {cerr << x;}
void __print(unsigned long long x) {cerr << x;}
void __print(float x) {cerr << x;}
void __print(double x) {cerr << x;}
void __print(long double x) {cerr << x;}
void __print(char x) {cerr << '\'' << x << '\'';}
void __print(const char *x) {cerr << '\"' << x << '\"';}
void __print(const string &x) {cerr << '\"' << x << '\"';}
void __print(bool x) {cerr << (x ? "true" : "false");}

template<typename T, typename V>
void __print(const pair<T, V> &x) {cerr << '{'; __print(x.first); cerr << ','; __print(x.second); cerr << '}';}
template<typename T>
void __print(const T &x) {int f = 0; cerr << '{'; for (auto &i: x) cerr << (f++ ? "," : ""), __print(i); cerr << "}";}
void _print() {cerr << "]\n";}
template <typename T, typename... V>
void _print(T t, V... v) {__print(t); if (sizeof...(v)) cerr << ", "; _print(v...);}
#ifndef ONLINE_JUDGE
#define debug(x...) cerr << "[" << #x << "] = ["; _print(x)
#else
#define debug(x...)
#endif

vector<int> ans;
int main(void)
{
	int a, b;
	scanf("%d %d", &a, &b);
	string s, t;
	cin >> s >> t;
	for (int i=0; i<s.size(); i++)
		ans.pb(i);
	for (int i=0; i<=t.size()-s.size(); i++)
	{
		int cnt = 0;
		for (int j=0; j<s.size(); j++)
		{
			if (s[j] != t[i+j]) cnt++;
		}
		if (ans.size() > cnt)
		{
			ans.clear();
			for (int j=0; j<s.size(); j++)
				if (s[j] != t[i+j])
					ans.pb(j+1);
		}
	}
	printf("%d\n", ans.size());
	for (int x : ans)
		printf("%d ", x);
	printf("\n");

	return 0;
}


#include <bits/stdc++.h>
using namespace std;

#define pb push_back
#define eb emplace_back
#define mp make_pair
#define ll long long
#define ull unsigned long long
#define F first
#define S second
void __print(int x) {cerr << x;}
void __print(long x) {cerr << x;}
void __print(long long x) {cerr << x;}
void __print(unsigned x) {cerr << x;}
void __print(unsigned long x) {cerr << x;}
void __print(unsigned long long x) {cerr << x;}
void __print(float x) {cerr << x;}
void __print(double x) {cerr << x;}
void __print(long double x) {cerr << x;}
void __print(char x) {cerr << '\'' << x << '\'';}
void __print(const char *x) {cerr << '\"' << x << '\"';}
void __print(const string &x) {cerr << '\"' << x << '\"';}
void __print(bool x) {cerr << (x ? "true" : "false");}

template<typename T, typename V>
void __print(const pair<T, V> &x) {cerr << '{'; __print(x.first); cerr << ','; __print(x.second); cerr << '}';}
template<typename T>
void __print(const T &x) {int f = 0; cerr << '{'; for (auto &i: x) cerr << (f++ ? "," : ""), __print(i); cerr << "}";}
void _print() {cerr << "]\n";}
template <typename T, typename... V>
void _print(T t, V... v) {__print(t); if (sizeof...(v)) cerr << ", "; _print(v...);}
#ifndef ONLINE_JUDGE
#define debug(x...) cerr << "[" << #x << "] = ["; _print(x)
#else
#define debug(x...)
#endif

vector<int> ans;
int main(void)
{
	int a, b;
	scanf("%d %d", &a, &b);
	string s, t;
	cin >> s >> t;
	for (int i=0; i<s.size(); i++)
		ans.pb(i+1);
	for (int i=0; i<=t.size()-s.size(); i++)
	{
		int cnt = 0;
		for (int j=0; j<s.size(); j++)
		{
			if (s[j] != t[i+j]) cnt++;
		}
		if (ans.size() > cnt)
		{
			ans.clear();
			for (int j=0; j<s.size(); j++)
				if (s[j] != t[i+j])
					ans.pb(j+1);
		}
	}
	printf("%d\n", ans.size());
	for (int x : ans)
		printf("%d ", x);
	printf("\n");

	return 0;
}


#include <bits/stdc++.h>
using namespace std;

#define pb push_back
#define eb emplace_back
#define mp make_pair
#define ll long long
#define F first
#define S second

int main(void)
{

	int n, m;
	scanf("%d %d", &n, &m);
	string s, t;
	cin >> s >> t;
	vector<int> ans;
	vector<int> newans;
	for (int i=0; i<n; i++)
		ans.pb(i);

	for (int i=0; i<=t.size() - s.size(); i++)
	{
		newans.clear();
		for (int j=0; j<n; j++)
			if (s[j] != t[i+j])
				newans.eb(j);

		if (newans.size() < ans.size())
			ans = newans;

	}
	printf("%d\n", ans.size());
	for (int i=0; i<ans.size(); i++)
		printf("%d ", ans[i]);

	return false;
}


#include <bits/stdc++.h>
#define ll long long
#define pb push_back
int main()
{
	int n, m;
	string s, t;
	int mn=INT_MAX;
	cin >> n >> m >> s >> t;
	vector<int> v;
	for(int i=0; i<=t.size()-s.size(); ++i)
	{
		int cnt=0, st=i;
		for(int j=0; j<s.size(); ++j)
		{
			if(s[j]!=t[st])
			{
				++cnt;
				v.push_back(j+1);
			}
			++st;
		}
		if(mn>=v.size())
		{
			mn=v.size();
			v.clear();
		}
	}
	cout << mn << endl;
	for(auto x: v) cout << x << " ";
	return 0;
}


const int maxn = 1050;
    vector < int > ans;
    vector < int > newAns;
    char t1[maxn];
    char t2[maxn];
    int n, m;
    scanf ( "%d%d\n", &n, &m );
    gets( t1 );
    gets( t2 );

    for ( int j = 0; j < n; j++ )
    	ans.pb( j );

    for ( int j = 0; j < m - n + 1; j++ ) {
    	newAns.clear();
    	for ( int i = 0; i < n; i++ )
    		if ( t1[i] != t2[i + j] )
    			newAns.pb( i );
    	if ( newAns.size() < ans.size() )
    		ans = newAns;
    }
    int sz = ans.size();
    printf( "%d\n", sz );
    for ( int j = 0; j < sz; j++ )
    	printf( "%d ", ans[j] + 1 );


#include <bits/stdc++.h>
#define ll long long
#define pb push_back
using namespace std;
int main()
{
	const int maxn = 1050;
    vector < int > ans;
    vector < int > newAns;
    char t1[maxn];
    char t2[maxn];
    int n, m;
    scanf ( "%d%d\n", &n, &m );
    gets( t1 );
    gets( t2 );

    for ( int j = 0; j < n; j++ )
    	ans.pb( j );

    for ( int j = 0; j < m - n + 1; j++ ) {
    	newAns.clear();
    	for ( int i = 0; i < n; i++ )
    		if ( t1[i] != t2[i + j] )
    			newAns.pb( i );
    	if ( newAns.size() < ans.size() )
    		ans = newAns;
    }
    int sz = ans.size();
    printf( "%d\n", sz );
    for ( int j = 0; j < sz; j++ )
    	printf( "%d ", ans[j] + 1 );
}


#include <bits/stdc++.h>
using namespace std;

signed main() {

	int n, m;
	cin >> n >> m;

	string a, b;
	cin >> a >> b;

	vector<int> temp;
	vector<int> ans;

	for(int i = 0; i < n; i++)
		ans.push_back(i);

	for (int i = 0; i < m - n + 1; i++)
	{
		for (int j = 0; j < n; j++)
		{
			if (a[j] != b[i + j])
			{
				temp.push_back(j + 1);
			}
		}

		if(ans.size() > temp.size())
				ans = temp;

		temp.clear();
	}

	cout << ans.size() << "\n";

	for(auto it : ans)
		cout << it << " ";

	return 0;
}


#include <bits/stdc++.h>
using namespace std;

signed main() {

	int n, m;
	cin >> n >> m;

	string a, b;
	cin >> a >> b;

	vector<int> ans(n);
	vector<int> temp;

	for (int i = 0; i < m - n + 1; i++)
	{
		for (int j = 0; j < n; j++)
		{
			if (a[j] != b[i + j])
			{
				temp.push_back(j + 1);
			}
		}

		if(ans.size() >= temp.size()){
			ans = temp;
		}

		temp.clear();
	}

	cout << ans.size() << "\n";

	for(auto it : ans)
		cout << it << " ";

	return 0;
}


#include <iostream>
#include <iomanip>
#include <string>
#include <vector>
#include <algorithm>
#include <sstream>
#include <queue>
#include <deque>
#include <iterator>
#include <stack>
#include <map>
#include <set>
#include <numeric>
#include <limits>
#include <math.h>
#include <stdio.h>
#include <string.h>

#define MOD 1000000007
#define EPS 1e-9
#define ll long long
#define ld long double
#define pb push_back
#define mp make_pair
#define mt make_tuple
#define F first
#define S second
#define endl '\n'

#define DUMPSTR_WNAME(os,name,a) do{(os) << "#DUMP " << (name) << " = " << (a) << "  ";}while(false)
#define dump(a) DUMPSTR_WNAME(cout, #a, (a))

#define FOREACH(it,x) for(__typeof__((x).begin()) it = (x).begin(); it != (x).end(); ++it)
#define FOR(i,a,b) for(ll i=(ll)(a);i<=(ll)(b);++i)
#define ROF(i,a,b) for(ll i=(ll)(a);i>=(ll)(b);--i)

const ld PI=3.141592653589793238L;
const ll N=300005;

using namespace std;

bool cmp(pair<ll,ll>&a,pair<ll,ll>&b){return (a.S - a.F > b.S - b.F);}

int main(){
    ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
    //freopen("input.txt","r",stdin); freopen("output.txt","w",stdout);

    ll n,a,b,k; cin >> n >> a >> b >> k;

    vector<pair<ll,ll> >v;
    ll last = 1;
    FOR(i,1,n){
        char ch; cin >> ch;
        if(ch == '0') continue;

        v.pb(mp(last,i-1));
        last = i+1;
    }
    v.pb(mp(last,n));

    ll nb = 0;
    FOR(i,0,v.size()-1) nb += (v[i].S - v[i].F + 1) / b;

    if(nb < a){
        cout << "0\n";
        return 0;
    }

    sort(v.begin(),v.end(),cmp);

    vector<ll>ans;
    ll curr = v[0].F - 1;
    FOR(i,0,v.size()-1){
        --nb;
        curr += b;

        ans.pb(curr);
        if(nb < a) break;

        if(curr + b > v[i].S) curr = v[i+1].F - 1;
        else --i;
    }

    cout << ans.size() << endl;
    FOREACH(it,ans) cout << *it << " ";

    return 0;
}


#include<bits/stdc++.h>
//#define RIP
using namespace std;

typedef long long int ll;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<vi> vvi;
typedef vector<vl> vvl;
typedef pair<int,int> pii;
typedef pair<double, double> pdd;
typedef pair<ll, ll> pll;
typedef vector<pii> vii;
typedef vector<pll> vll;

#define PB push_back
#define F first
#define S second
#define MP make_pair
#define endl '\n'
#define mx1 100005
#define mx2 200005
#define mx3 300005
#define WHITE 0
#define GRAY 1
#define BLACK 2
#define MOD 1000000000007LL

const double PI = acos(-1);
const double eps = 1e-9;
const int inf = 2000000000;
const ll infLL = 90000000000000000;
//const int MOD = 1000000007;
int MOD1 = 1000000007;
int MOD2 = 1000000009;
//#define harmonic(n) 0.57721566490153286l+log(n)

#define mem(a,b) memset(a, b, sizeof(a) )
#define gcd(a,b) __gcd(a,b)
#define lcm(a,b) (a*(b/gcd(a,b)))
#define sqr(a) ((a) * (a))

#define optimize() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);

typedef vector<int>::iterator vit;
typedef set<int>::iterator sit;

inline bool checkBit(ll n, ll i) { return n&(1LL<<i); }
inline ll setBit(ll n, ll i) { return n|(1LL<<i);; }
inline ll resetBit(ll n, ll i) { return n&(~(1LL<<i)); }

int dx[] = {0, 0, +1, -1};
int dy[] = {+1, -1, 0, 0};
//int dx[] = {+1, 0, -1, 0, +1, +1, -1, -1};
//int dy[] = {0, +1, 0, -1, +1, -1, +1, -1};

inline bool EQ(double a, double b) { return fabs(a-b) < 1e-9; }
inline bool isLeapYear(ll year) { return (year%400==0) || (year%4==0 && year%100!=0); }
inline void normal(ll &a) { a %= MOD; (a < 0) && (a += MOD); }
inline ll modMul(ll a, ll b) { a %= MOD, b %= MOD; normal(a), normal(b); return (a*b)%MOD; }
inline ll modAdd(ll a, ll b) { a %= MOD, b %= MOD; normal(a), normal(b); return (a+b)%MOD; }
inline ll modSub(ll a, ll b) { a %= MOD, b %= MOD; normal(a), normal(b); a -= b; normal(a); return a; }
inline ll modPow(ll b, ll p) { ll r = 1LL; while(p) { if(p&1) r = modMul(r, b); b = modMul(b, b); p >>= 1LL; } return r; }
inline ll modDiv(ll a, ll b) { return modMul(a, modPow(b, MOD-2)); }

ll converter( string a )
{
    ll i , mul = 1 , r , t ,ans = 0LL;

    if( a.length() == 0 )return 0;

    for( i = a.length() - 1 ; i >= 0 ; i-- ){
        t = a[i] - '0';
        r = t%10;
        ans += (mul*r);
        mul = mul*10;
    }
    return ans;
}

//
//debug
#ifdef RIP
template < typename F, typename S >
ostream& operator << ( ostream& os, const pair< F, S > & p ) {
            return os << "(" << p.first << ", " << p.second << ")";
}

template < typename T >
ostream &operator << ( ostream & os, const vector< T > &v ) {
            os << "{";
                for(auto it = v.begin(); it != v.end(); ++it) {
                                if( it != v.begin() ) os << ", ";
                                        os << *it;
                                            }
                    return os << "}";
}

template < typename T >
ostream &operator << ( ostream & os, const set< T > &v ) {
            os << "[";
                for(auto it = v.begin(); it != v.end(); ++it) {
                                if( it != v.begin() ) os << ", ";
                                        os << *it;
                                            }
                    return os << "]";
}

template < typename T >
ostream &operator << ( ostream & os, const multiset< T > &v ) {
            os << "[";
                for(auto it = v.begin(); it != v.end(); ++it) {
                                if( it != v.begin() ) os << ", ";
                                        os << *it;
                                            }
                    return os << "]";
}

template < typename F, typename S >
ostream &operator << ( ostream & os, const map< F, S > &v ) {
            os << "[";
                for(auto it = v.begin(); it != v.end(); ++it) {
                                if( it != v.begin() ) os << ", ";
                                        os << it -> first << " = " << it -> second ;
                                            }
                    return os << "]";
}

#define dbg(args...) do {cerr << #args << " : "; faltu(args); } while(0)

void faltu () {
            cerr << endl;
}

template <typename T>
void faltu( T a[], int n ) {
            for(int i = 0; i < n; ++i) cerr << a[i] << ' ';
                cerr << endl;
}

template <typename T, typename ... hello>
void faltu( T arg, const hello &... rest) {
            cerr << arg << ' ';
                faltu(rest...);
}
#else
#define dbg(args...)
#endif  //RIP

vector < ll > segment ;

int main()
{
    optimize();
    //freopen("input.txt" , "r", stdin );

    ll i , n , a , b , k , l , r , t , gap , av_now , sneed , place , add , j , tot = 0LL ;
    vector < ll > ans;
    string s;
    cin >> n >> a >> b >> k;
    cin >> s;
    l = -1;
    r = 0;
    t = s.size();
    for( i = 0 ; i < s.length() ; i++ ){
        if( s[i] == '1' || i == t-1 ){
            r = i;
            if( i == t-1 && s[i] == '0' )r++;
            gap = r - l - 1;
            place = gap/b;
            tot += place;
            l = i;

        }
    }
    ll target = tot - a + 1;
    l = -1;
    ll till;
     for( i = 0 ; i < s.length() ; i++ ){
        if( s[i] == '1' || i == t-1 ){
            if( l == -1 )till = 0;
            else till = l;
            for( j = i - b + 1 ; j >=  till && target > 0 ; j -= b){
                ans.push_back(j);
                target--;
            }
            l = i+1;
        }
    }

    sort( ans.begin() , ans.end() );

    cout << ans.size() << endl;

    for( i = 0 ; i < ans.size() ; i++ ){
        cout << ans[i] + 1 << " " ;
    }

    return 0;
}


#include<bits/stdc++.h>
//#define RIP
using namespace std;

typedef long long int ll;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<vi> vvi;
typedef vector<vl> vvl;
typedef pair<int,int> pii;
typedef pair<double, double> pdd;
typedef pair<ll, ll> pll;
typedef vector<pii> vii;
typedef vector<pll> vll;

#define PB push_back
#define F first
#define S second
#define MP make_pair
#define endl '\n'
#define mx1 100005
#define mx2 200005
#define mx3 300005
#define WHITE 0
#define GRAY 1
#define BLACK 2
#define MOD 1000000000007LL

const double PI = acos(-1);
const double eps = 1e-9;
const int inf = 2000000000;
const ll infLL = 90000000000000000;
//const int MOD = 1000000007;
int MOD1 = 1000000007;
int MOD2 = 1000000009;
//#define harmonic(n) 0.57721566490153286l+log(n)

#define mem(a,b) memset(a, b, sizeof(a) )
#define gcd(a,b) __gcd(a,b)
#define lcm(a,b) (a*(b/gcd(a,b)))
#define sqr(a) ((a) * (a))

#define optimize() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);

typedef vector<int>::iterator vit;
typedef set<int>::iterator sit;

inline bool checkBit(ll n, ll i) { return n&(1LL<<i); }
inline ll setBit(ll n, ll i) { return n|(1LL<<i);; }
inline ll resetBit(ll n, ll i) { return n&(~(1LL<<i)); }

int dx[] = {0, 0, +1, -1};
int dy[] = {+1, -1, 0, 0};
//int dx[] = {+1, 0, -1, 0, +1, +1, -1, -1};
//int dy[] = {0, +1, 0, -1, +1, -1, +1, -1};

inline bool EQ(double a, double b) { return fabs(a-b) < 1e-9; }
inline bool isLeapYear(ll year) { return (year%400==0) || (year%4==0 && year%100!=0); }
inline void normal(ll &a) { a %= MOD; (a < 0) && (a += MOD); }
inline ll modMul(ll a, ll b) { a %= MOD, b %= MOD; normal(a), normal(b); return (a*b)%MOD; }
inline ll modAdd(ll a, ll b) { a %= MOD, b %= MOD; normal(a), normal(b); return (a+b)%MOD; }
inline ll modSub(ll a, ll b) { a %= MOD, b %= MOD; normal(a), normal(b); a -= b; normal(a); return a; }
inline ll modPow(ll b, ll p) { ll r = 1LL; while(p) { if(p&1) r = modMul(r, b); b = modMul(b, b); p >>= 1LL; } return r; }
inline ll modDiv(ll a, ll b) { return modMul(a, modPow(b, MOD-2)); }

ll converter( string a )
{
    ll i , mul = 1 , r , t ,ans = 0LL;

    if( a.length() == 0 )return 0;

    for( i = a.length() - 1 ; i >= 0 ; i-- ){
        t = a[i] - '0';
        r = t%10;
        ans += (mul*r);
        mul = mul*10;
    }
    return ans;
}

//
//debug
#ifdef RIP
template < typename F, typename S >
ostream& operator << ( ostream& os, const pair< F, S > & p ) {
            return os << "(" << p.first << ", " << p.second << ")";
}

template < typename T >
ostream &operator << ( ostream & os, const vector< T > &v ) {
            os << "{";
                for(auto it = v.begin(); it != v.end(); ++it) {
                                if( it != v.begin() ) os << ", ";
                                        os << *it;
                                            }
                    return os << "}";
}

template < typename T >
ostream &operator << ( ostream & os, const set< T > &v ) {
            os << "[";
                for(auto it = v.begin(); it != v.end(); ++it) {
                                if( it != v.begin() ) os << ", ";
                                        os << *it;
                                            }
                    return os << "]";
}

template < typename T >
ostream &operator << ( ostream & os, const multiset< T > &v ) {
            os << "[";
                for(auto it = v.begin(); it != v.end(); ++it) {
                                if( it != v.begin() ) os << ", ";
                                        os << *it;
                                            }
                    return os << "]";
}

template < typename F, typename S >
ostream &operator << ( ostream & os, const map< F, S > &v ) {
            os << "[";
                for(auto it = v.begin(); it != v.end(); ++it) {
                                if( it != v.begin() ) os << ", ";
                                        os << it -> first << " = " << it -> second ;
                                            }
                    return os << "]";
}

#define dbg(args...) do {cerr << #args << " : "; faltu(args); } while(0)

void faltu () {
            cerr << endl;
}

template <typename T>
void faltu( T a[], int n ) {
            for(int i = 0; i < n; ++i) cerr << a[i] << ' ';
                cerr << endl;
}

template <typename T, typename ... hello>
void faltu( T arg, const hello &... rest) {
            cerr << arg << ' ';
                faltu(rest...);
}
#else
#define dbg(args...)
#endif  //RIP

vector < ll > segment ;

int main()
{
    optimize();
    //freopen("input.txt" , "r", stdin );

    ll i , n , a , b , k , l , r , t , gap , av_now , sneed , place , add , j , tot = 0LL ;
    vector < ll > ans;
    string s;
    cin >> n >> a >> b >> k;
    cin >> s;
    l = -1;
    r = 0;
    t = s.size();
    for( i = 0 ; i < s.length() ; i++ ){
        if( s[i] == '1' || i == t-1 ){
            r = i;
            if( i == t-1 && s[i] == '0' )r++;
            gap = r - l - 1;
            place = gap/b;
            tot += place;
            l = i;

        }
    }
    ll target = tot - a + 1;
    l = -1;
    ll till;
     for( i = 0 ; i < s.length() ; i++ ){
        if( s[i] == '1' || i == t-1 ){
            if( l == -1 )till = 0;
            else till = l;
            if( s[i] == '0' && i == t-1 )r = i;
            else r= i-1;
            for( j = till + b - 1 ; j <= r && target > 0; j += b ){
                ans.push_back(j);
                target--;
            }
            l = i+1;
        }
    }

    sort( ans.begin() , ans.end() );

    cout << ans.size() << endl;

    for( i = 0 ; i < ans.size() ; i++ ){
        cout << ans[i] + 1 << " " ;
    }

    return 0;
}


#include<bits/stdc++.h>
//#define RIP
using namespace std;

typedef long long int ll;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<vi> vvi;
typedef vector<vl> vvl;
typedef pair<int,int> pii;
typedef pair<double, double> pdd;
typedef pair<ll, ll> pll;
typedef vector<pii> vii;
typedef vector<pll> vll;

#define PB push_back
#define F first
#define S second
#define MP make_pair
#define endl '\n'
#define mx1 100005
#define mx2 200005
#define mx3 300005
#define WHITE 0
#define GRAY 1
#define BLACK 2
#define MOD 1000000000007LL

const double PI = acos(-1);
const double eps = 1e-9;
const int inf = 2000000000;
const ll infLL = 90000000000000000;
//const int MOD = 1000000007;
int MOD1 = 1000000007;
int MOD2 = 1000000009;
//#define harmonic(n) 0.57721566490153286l+log(n)

#define mem(a,b) memset(a, b, sizeof(a) )
#define gcd(a,b) __gcd(a,b)
#define lcm(a,b) (a*(b/gcd(a,b)))
#define sqr(a) ((a) * (a))

#define optimize() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);

typedef vector<int>::iterator vit;
typedef set<int>::iterator sit;

inline bool checkBit(ll n, ll i) { return n&(1LL<<i); }
inline ll setBit(ll n, ll i) { return n|(1LL<<i);; }
inline ll resetBit(ll n, ll i) { return n&(~(1LL<<i)); }

int dx[] = {0, 0, +1, -1};
int dy[] = {+1, -1, 0, 0};
//int dx[] = {+1, 0, -1, 0, +1, +1, -1, -1};
//int dy[] = {0, +1, 0, -1, +1, -1, +1, -1};

inline bool EQ(double a, double b) { return fabs(a-b) < 1e-9; }
inline bool isLeapYear(ll year) { return (year%400==0) || (year%4==0 && year%100!=0); }
inline void normal(ll &a) { a %= MOD; (a < 0) && (a += MOD); }
inline ll modMul(ll a, ll b) { a %= MOD, b %= MOD; normal(a), normal(b); return (a*b)%MOD; }
inline ll modAdd(ll a, ll b) { a %= MOD, b %= MOD; normal(a), normal(b); return (a+b)%MOD; }
inline ll modSub(ll a, ll b) { a %= MOD, b %= MOD; normal(a), normal(b); a -= b; normal(a); return a; }
inline ll modPow(ll b, ll p) { ll r = 1LL; while(p) { if(p&1) r = modMul(r, b); b = modMul(b, b); p >>= 1LL; } return r; }
inline ll modDiv(ll a, ll b) { return modMul(a, modPow(b, MOD-2)); }

ll converter( string a )
{
    ll i , mul = 1 , r , t ,ans = 0LL;

    if( a.length() == 0 )return 0;

    for( i = a.length() - 1 ; i >= 0 ; i-- ){
        t = a[i] - '0';
        r = t%10;
        ans += (mul*r);
        mul = mul*10;
    }
    return ans;
}

//
//debug
#ifdef RIP
template < typename F, typename S >
ostream& operator << ( ostream& os, const pair< F, S > & p ) {
            return os << "(" << p.first << ", " << p.second << ")";
}

template < typename T >
ostream &operator << ( ostream & os, const vector< T > &v ) {
            os << "{";
                for(auto it = v.begin(); it != v.end(); ++it) {
                                if( it != v.begin() ) os << ", ";
                                        os << *it;
                                            }
                    return os << "}";
}

template < typename T >
ostream &operator << ( ostream & os, const set< T > &v ) {
            os << "[";
                for(auto it = v.begin(); it != v.end(); ++it) {
                                if( it != v.begin() ) os << ", ";
                                        os << *it;
                                            }
                    return os << "]";
}

template < typename T >
ostream &operator << ( ostream & os, const multiset< T > &v ) {
            os << "[";
                for(auto it = v.begin(); it != v.end(); ++it) {
                                if( it != v.begin() ) os << ", ";
                                        os << *it;
                                            }
                    return os << "]";
}

template < typename F, typename S >
ostream &operator << ( ostream & os, const map< F, S > &v ) {
            os << "[";
                for(auto it = v.begin(); it != v.end(); ++it) {
                                if( it != v.begin() ) os << ", ";
                                        os << it -> first << " = " << it -> second ;
                                            }
                    return os << "]";
}

#define dbg(args...) do {cerr << #args << " : "; faltu(args); } while(0)

void faltu () {
            cerr << endl;
}

template <typename T>
void faltu( T a[], int n ) {
            for(int i = 0; i < n; ++i) cerr << a[i] << ' ';
                cerr << endl;
}

template <typename T, typename ... hello>
void faltu( T arg, const hello &... rest) {
            cerr << arg << ' ';
                faltu(rest...);
}
#else
#define dbg(args...)
#endif  //RIP

vector < ll > segment ;

int main()
{
    optimize();
    //freopen("input.txt" , "r", stdin );

    ll i , n , a , b , k , l , r , t , gap , av_now , sneed , place , add , j , tot = 0LL ;
    vector < ll > ans;
    string s;
    cin >> n >> a >> b >> k;
    cin >> s;
    l = -1;
    r = 0;
    t = s.size();
    for( i = 0 ; i < s.length() ; i++ ){
        if( s[i] == '1' || i == t-1 ){
            r = i;
            if( i == t-1 && s[i] == '0' )r++;
            gap = r - l - 1;
            place = gap/b;
            tot += place;
            l = i;

        }
    }
    ll target = tot - a + 1;
    l = -1;
    ll till;
     for( i = 0 ; i < s.length() ; i++ ){
        if( s[i] == '1' || i == t-1 ){
            if( l == -1 )till = 0;
            else till = l;
            for( j = till + b - 1 ; j <= i && target > 0; j += b ){
                ans.push_back(j);
                target--;
            }
            l = i+1;
        }
    }

    sort( ans.begin() , ans.end() );

    cout << ans.size() << endl;

    for( i = 0 ; i < ans.size() ; i++ ){
        cout << ans[i] + 1 << " " ;
    }

    return 0;
}


#include<bits/stdc++.h>
//#define RIP
using namespace std;

typedef long long int ll;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef vector<vi> vvi;
typedef vector<vl> vvl;
typedef pair<int,int> pii;
typedef pair<double, double> pdd;
typedef pair<ll, ll> pll;
typedef vector<pii> vii;
typedef vector<pll> vll;

#define PB push_back
#define F first
#define S second
#define MP make_pair
#define endl '\n'
#define mx1 100005
#define mx2 200005
#define mx3 300005
#define WHITE 0
#define GRAY 1
#define BLACK 2
#define MOD 1000000000007LL

const double PI = acos(-1);
const double eps = 1e-9;
const int inf = 2000000000;
const ll infLL = 90000000000000000;
//const int MOD = 1000000007;
int MOD1 = 1000000007;
int MOD2 = 1000000009;
//#define harmonic(n) 0.57721566490153286l+log(n)

#define mem(a,b) memset(a, b, sizeof(a) )
#define gcd(a,b) __gcd(a,b)
#define lcm(a,b) (a*(b/gcd(a,b)))
#define sqr(a) ((a) * (a))

#define optimize() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);

typedef vector<int>::iterator vit;
typedef set<int>::iterator sit;

inline bool checkBit(ll n, ll i) { return n&(1LL<<i); }
inline ll setBit(ll n, ll i) { return n|(1LL<<i);; }
inline ll resetBit(ll n, ll i) { return n&(~(1LL<<i)); }

int dx[] = {0, 0, +1, -1};
int dy[] = {+1, -1, 0, 0};
//int dx[] = {+1, 0, -1, 0, +1, +1, -1, -1};
//int dy[] = {0, +1, 0, -1, +1, -1, +1, -1};

inline bool EQ(double a, double b) { return fabs(a-b) < 1e-9; }
inline bool isLeapYear(ll year) { return (year%400==0) || (year%4==0 && year%100!=0); }
inline void normal(ll &a) { a %= MOD; (a < 0) && (a += MOD); }
inline ll modMul(ll a, ll b) { a %= MOD, b %= MOD; normal(a), normal(b); return (a*b)%MOD; }
inline ll modAdd(ll a, ll b) { a %= MOD, b %= MOD; normal(a), normal(b); return (a+b)%MOD; }
inline ll modSub(ll a, ll b) { a %= MOD, b %= MOD; normal(a), normal(b); a -= b; normal(a); return a; }
inline ll modPow(ll b, ll p) { ll r = 1LL; while(p) { if(p&1) r = modMul(r, b); b = modMul(b, b); p >>= 1LL; } return r; }
inline ll modDiv(ll a, ll b) { return modMul(a, modPow(b, MOD-2)); }

ll converter( string a )
{
    ll i , mul = 1 , r , t ,ans = 0LL;

    if( a.length() == 0 )return 0;

    for( i = a.length() - 1 ; i >= 0 ; i-- ){
        t = a[i] - '0';
        r = t%10;
        ans += (mul*r);
        mul = mul*10;
    }
    return ans;
}

//
//debug
#ifdef RIP
template < typename F, typename S >
ostream& operator << ( ostream& os, const pair< F, S > & p ) {
            return os << "(" << p.first << ", " << p.second << ")";
}

template < typename T >
ostream &operator << ( ostream & os, const vector< T > &v ) {
            os << "{";
                for(auto it = v.begin(); it != v.end(); ++it) {
                                if( it != v.begin() ) os << ", ";
                                        os << *it;
                                            }
                    return os << "}";
}

template < typename T >
ostream &operator << ( ostream & os, const set< T > &v ) {
            os << "[";
                for(auto it = v.begin(); it != v.end(); ++it) {
                                if( it != v.begin() ) os << ", ";
                                        os << *it;
                                            }
                    return os << "]";
}

template < typename T >
ostream &operator << ( ostream & os, const multiset< T > &v ) {
            os << "[";
                for(auto it = v.begin(); it != v.end(); ++it) {
                                if( it != v.begin() ) os << ", ";
                                        os << *it;
                                            }
                    return os << "]";
}

template < typename F, typename S >
ostream &operator << ( ostream & os, const map< F, S > &v ) {
            os << "[";
                for(auto it = v.begin(); it != v.end(); ++it) {
                                if( it != v.begin() ) os << ", ";
                                        os << it -> first << " = " << it -> second ;
                                            }
                    return os << "]";
}

#define dbg(args...) do {cerr << #args << " : "; faltu(args); } while(0)

void faltu () {
            cerr << endl;
}

template <typename T>
void faltu( T a[], int n ) {
            for(int i = 0; i < n; ++i) cerr << a[i] << ' ';
                cerr << endl;
}

template <typename T, typename ... hello>
void faltu( T arg, const hello &... rest) {
            cerr << arg << ' ';
                faltu(rest...);
}
#else
#define dbg(args...)
#endif  //RIP

vector < ll > segment ;

int main()
{
    optimize();
    //freopen("input.txt" , "r", stdin );

    ll i , n , a , b , k , l , r , t , gap , av_now , sneed , place , add , j , tot = 0LL ;
    vector < ll > ans;
    string s;
    cin >> n >> a >> b >> k;
    cin >> s;
    l = -1;
    r = 0;
    t = s.size();
    for( i = 0 ; i < s.length() ; i++ ){
        if( s[i] == '1' || i == t-1 ){
            r = i;
            if( i == t-1 && s[i] == '0' )r++;
            gap = r - l - 1;
            place = gap/b;
            tot += place;
            l = i;

        }
    }
    ll target = tot - a + 1;
    l = -1;
    ll till;
     for( i = 0 ; i < s.length() ; i++ ){
        if( s[i] == '1' || i == t-1 ){
            if( l == -1 )till = 0;
            else till = l;
            if( s[i] == '0' && i == t-1 )r = i;
            else r= i-1;
            for( j = till + b - 1 ; j < r && target > 0; j += b ){
                ans.push_back(j);
                target--;
            }
            l = i+1;
        }
    }

    sort( ans.begin() , ans.end() );

    cout << ans.size() << endl;

    for( i = 0 ; i < ans.size() ; i++ ){
        cout << ans[i] + 1 << " " ;
    }

    return 0;
}


#include <cstdio>

int main() {
	int n, a, b, k, i, state = 0, gridLength = 0, positionsNumber = 0, shootNumber;
	char *s;
	int *attackPositions;
	scanf("%d", &n);
	scanf("%d", &a);
	scanf("%d", &b);
	scanf("%d", &k);
	s = new char[n + 10];
	attackPositions = new int[n + 10];
	scanf("%s", s);
	for (i = 0; i < n; i++) {
        if (s[i] == '0') {
            gridLength++;
        } else {
            gridLength = 0;
        }
        if (gridLength == b) {
            attackPositions[positionsNumber] = i + 1;
            positionsNumber++;
            state = 1;
            gridLength = 0;
        }
	}

	shootNumber = positionsNumber - a + 1;
	if (shootNumber < 0) {
        shootNumber = 0;
	}
	printf("%d\n", shootNumber);
	for (i = 0; i < shootNumber; i++) {
        printf("%d ", attackPositions[i]);
	}
}


#include <cstdio>

int main() {
	int n, a, b, k, i, state = 0, gridLength = 0, positionsNumber = 0, shootNumber;
	char *s;
	char *attackPositions;
	scanf("%d", &n);
	scanf("%d", &a);
	scanf("%d", &b);
	scanf("%d", &k);
	s = new char[n + 10];
	attackPositions = new char[n + 10];
	scanf("%s", s);
	for (i = 0; i < n; i++) {
        if (s[i] == '0') {
            gridLength++;
        } else {
            gridLength = 0;
        }
        if (gridLength == b) {
            attackPositions[positionsNumber] = i + 1;
            positionsNumber++;
            state = 1;
            gridLength = 0;
        }
	}

	shootNumber = positionsNumber - a + 1;
	if (shootNumber < 0) {
        shootNumber = 0;
	}
	printf("%d\n", shootNumber);
	for (i = 0; i < shootNumber; i++) {
        printf("%d ", attackPositions[i]);
	}
}


#include <cstdio>

int main() {
	int n, a, b, k, i, state = 0, gridLength = 0, positionsNumber = 0, shootNumber;
	char *s;
	int *attackPositions;
	scanf("%d", &n);
	scanf("%d", &a);
	scanf("%d", &b);
	scanf("%d", &k);
	s = new char[n + 10];
	attackPositions = new char[n + 10];
	scanf("%s", s);
	for (i = 0; i < n; i++) {
        if (s[i] == '0') {
            gridLength++;
        } else {
            gridLength = 0;
        }
        if (gridLength == b) {
            attackPositions[positionsNumber] = i + 1;
            positionsNumber++;
            state = 1;
            gridLength = 0;
        }
	}

	shootNumber = positionsNumber - a + 1;
	if (shootNumber < 0) {
        shootNumber = 0;
	}
	printf("%d\n", shootNumber);
	for (i = 0; i < shootNumber; i++) {
        printf("%d ", attackPositions[i]);
	}
}


#include<bits/stdc++.h>
#define all(X) X.begin(),X.end()
#define fi first
#define se second
#define pb push_back

using namespace std;

template<class T>
void smin(T &a, T b){
	 a = min(a, b);
}
template<class T>
void smax(T &a, T b){
	 a = max(a, b);
}

const int maxn = 1e5 + 5;
const int mod = 1e9 + 7;
const int inf = mod - 7;

typedef long long ll;
typedef pair<int, int> pii;

string s;
vector<int> ans;

int main(){
	int n, a, b, k;
	cin>>n>>a>>b>>k>>s;
	int x = 0, cnt = 0;
	for(int i = 0; i < n; i++){
		if(s[i] == '1'){
			cnt += x / b;
			x = 0;
		}
		else x++;
	}
//	cout<<cnt<<endl;
	cnt -= a;
	cnt++;
	int p = 0;
	while(cnt != ans.size()){
		for(int i = 0; i < b - 1; p++, i++) if(s[p] == '1')	break;
		if(s[p] == '0') ans.pb(p);
		p++;
	}
	cout<<ans.size()<<endl;
	for(int x : ans) cout<<x + 1<<' ';
	cout<<endl;
}


#include<bits/stdc++.h>
#define all(X) X.begin(),X.end()
#define fi first
#define se second
#define pb push_back

using namespace std;

template<class T>
void smin(T &a, T b){
	 a = min(a, b);
}
template<class T>
void smax(T &a, T b){
	 a = max(a, b);
}

const int maxn = 1e5 + 5;
const int mod = 1e9 + 7;
const int inf = mod - 7;

typedef long long ll;
typedef pair<int, int> pii;

string s;
vector<int> ans;

int main(){
	int n, a, b, k;
	cin>>n>>a>>b>>k>>s;
	int x = 0, cnt = 0;
	for(int i = 0; i < n; i++){
		if(s[i] == '1'){
			cnt += x / b;
			x = 0;
		}
		else x++;
	}
	cnt += x / b;
	//cout<<cnt<<endl;
	cnt -= a;
	cnt++;
	int p = 0;
	while(cnt != ans.size()){
		for(int i = 0; i < b - 1; p++, i++) if(s[p] == '1')	break;
		if(s[p] == '0') ans.pb(p);
		p++;
	}
	cout<<ans.size()<<endl;
	for(int x : ans) cout<<x + 1<<' ';
	cout<<endl;
}


#include<cstdio>
#include<iostream>
#include<vector>
#include<algorithm>
#include<map>
#include<queue>
using namespace std;
typedef long long LL;
typedef pair<int, int> pi;

int main() {

    int n, a, b, k;
    char karakter;
    while (scanf("%d%d%d%d", &n, &a, &b, &k) != EOF) {
        int arr[200005], loc[200005], idx = 0;
        getchar();
        for (int i = 0; i < n; i++) {
            scanf("%c", &karakter);
            arr[i] = karakter - '0';
        }
        if (arr[0] == 1) {
            for (int i = 1; i < b; i++) {
                arr[i] = 1;
            }
        }
        if (arr[n - 1] == 1)  {
            for (int i = n - 1; i >= 0 && i >= n - b; i--) {
                arr[i] = 1;
            }
        }
        int possible = 0;
        for (int i = 0, j = 0; i < n; i++) {
            if (arr[i] == 0) {
                j = i;
                while (j < n && arr[j] == 0) {
                    if (j - i + 1 == b) break;
                    j++;
                }
                if (j < n && arr[j] == 0 && j - i + 1 == b) {
                    loc[idx++] = i;
                    possible++;
                }
                i = j;
            }
        }
        printf("%d\n", possible - a + 1);
        for (int i = 0; i < (possible - a + 1); i++) printf("%d ", loc[i] + 1);
        printf("\n");
    }

    return 0;
}


#include<cstdio>
#include<iostream>
#include<vector>
#include<algorithm>
#include<map>
#include<queue>
using namespace std;
typedef long long LL;
typedef pair<int, int> pi;

int main() {

    int n, a, b, k;
    char karakter;
    while (scanf("%d%d%d%d", &n, &a, &b, &k) != EOF) {
        int arr[200005], loc[200005], idx = 0;
        getchar();
        for (int i = 1; i <= n; i++) {
            scanf("%c", &karakter);
            arr[i] = karakter - '0';
        }

        int possible = 0;
        for (int i = 1; i <= n; i++) {
            if (arr[i] == 0) {
                int j = i;
                while (j <= n && arr[j] == 0) {
                    if (j - i + 1 == b) break;
                    j++;
                }
                if (j <= n && arr[j] == 0 && j - i + 1 == b) {
                    loc[idx++] = j;
                    possible++;
                }
                i = j;
            }
        }
        //for (int i = 0; i < idx; i++) printf("%3d", loc[i]);
        printf("%d\n", possible - a + 1);
        for (int i = 0; i < (possible - a + 1); i++) printf("%d ", loc[i]);
        printf("\n");
    }

    return 0;
}


#include<cstdio>
#include<iostream>
#include<vector>
#include<algorithm>
#include<map>
#include<queue>
using namespace std;
typedef long long LL;
typedef pair<int, int> pi;

int main() {

    int n, a, b, k;
    char karakter;
    while (scanf("%d%d%d%d", &n, &a, &b, &k) != EOF) {
        int arr[200005], loc[200005], idx = 0;
        getchar();
        for (int i = 0; i < n; i++) {
            scanf("%c", &karakter);
            arr[i] = karakter - '0';
        }
        int possible = 0;
        for (int i = 0, j = 0; i < n; i++) {
            if (arr[i] == 0) {
                j = i;
                while (j < n && arr[j] == 0) {
                    if (j - i + 1 == b) break;
                    j++;
                }
                if (j < n && arr[j] == 0 && j - i + 1 == b) {
                    loc[idx++] = i;
                    possible++;
                }
                i = j;
            }
        }
        printf("%d\n", possible - a + 1);
        for (int i = 0; i < (possible - a + 1); i++) printf("%d ", loc[i] + 1);
        printf("\n");
    }

    return 0;
}


#include <iostream>
#include <stdio.h>
#include <vector>
#include <string>
#include <climits>
#include <map>
#include <set>
using namespace std;
int main() {
    //freopen("input.txt", "r", stdin);
    //freopen("output.txt", "w", stdout);
    int n,a,b,k;
    cin >> n >> a >> b >> k;
    string s;
    cin >> s;
    vector<int> v(n);
    int j=0;
    for(int i=0; i<n; ++i) {
        if(s[i]=='0') {
            if(j==-1)
                j=0;
            if(j!=0 && (j+1)%b==0)
                v[i]=1;
            ++j;
        } else {
            v[i]=-1;
            j=-1;
        }
    }
    int d = a-1;
    for(int i=0; i<n; ++i) {
        if(v[i]==1 && d>0) {
            --d;
            v[i]=0;
        }
    }
    int answ=0;
    for(int i=0; i<n; ++i) {
        if(v[i]==1)
            ++answ;
    }
    cout << answ << endl;
    for(int i=0; i<n; ++i) {
        if(v[i]==1)
            cout << i+1 << ' ';
    }
}


#include <iostream>
#include <stdio.h>
#include <vector>
#include <string>
#include <climits>
#include <map>
#include <set>
using namespace std;
int main() {
    //freopen("input.txt", "r", stdin);
    //freopen("output.txt", "w", stdout);
    int n,a,b,k;
    cin >> n >> a >> b >> k;
    string s;
    cin >> s;
    vector<int> v(n);
    int j=0;
    for(int i=0; i<n; ++i) {
        if(s[i]=='0') {
            if(j==-1)
                j=0;
            if((j!=0 || b==1) && (j+1)%b==0) {
                v[i]=1;
                //cout << "1" << endl;
            }
            ++j;
        } else {
            v[i]=-1;
            j=-1;
        }
    }
    int d = a-1;
    for(int i=0; i<n; ++i) {
        if(v[i]==1 && d>0) {
            --d;
            v[i]=0;
        }
    }
    int answ=0;
    for(int i=0; i<n; ++i) {
        if(v[i]==1)
            ++answ;
    }

    cout << answ << endl;
    for(int i=0; i<n; ++i) {
        if(v[i]==1)
            cout << i+1 << ' ';
    }
}


#include <algorithm>
#include <iostream>
#include <fstream>
#include <vector>
#include <set>
#include <map>
#include <string>
using namespace std;

int main()
{
  int n, nsh, len, k;
  string line;

  cin >> n >> nsh >> len >> k;
  cin >> line;

  int nhits = 0, nposs = 0, diff = 1;
  size_t ipos0 = 0;
  for (int j = 0; j < n; ++j) {
    size_t ipos1 = line.find("1",ipos0);
    if (ipos1 == string::npos) break;
    //cout << (ipos1 - ipos0) << endl;
    diff = ipos1 - ipos0;
    if (diff >= len) {
      nposs += diff / len;
    }
    ipos0 = ipos1 + 1;
  }

  //cout << ipos0 << " " << diff << endl;
  if (n - ipos0 >= len) nposs += diff / len;
  //cout << "poss: " << nposs << " " << nhits << endl;

  ipos0 = 0;
  set<int> hits;
  while (nposs >= nsh) {
    for (int j = 0; j < n; ++j) {
      size_t ipos1 = line.find("1",ipos0);
      if (ipos1 == string::npos) {
	if (n - ipos0 >= len) {
	  --nposs;
	  ++nhits;
	  ipos0 += len;
	  hits.insert(ipos0);
	  break;
	}
      }
      diff = ipos1 - ipos0;
      if (diff >= len) {
	--nposs;
	++nhits;
	ipos0 += len;
	hits.insert(ipos0);
	break;
      }
      ipos0 = ipos1 + 1;
    }
  }

  //cout << "poss: " << nposs << " " << nhits << endl;
  cout << nhits << endl;
  for (set<int>::iterator it = hits.begin(); it != hits.end(); ++it) cout << *it << " ";
  cout << endl;
}


#include <algorithm>
#include <iostream>
#include <fstream>
#include <vector>
#include <set>
#include <map>
#include <string>
using namespace std;

int main()
{
  int n, nsh, len, k;
  string line;

  cin >> n >> nsh >> len >> k;
  cin >> line;

  int nhits = 0, nposs = 0, diff = 0;
  size_t ipos0 = 0;
  for (int j = 0; j < n; ++j) {
    size_t ipos1 = line.find("1",ipos0);
    if (ipos1 == string::npos) break;
    //cout << (ipos1 - ipos0) << endl;
    diff = ipos1 - ipos0;
    if (diff >= len) {
      nposs += diff / len;
    }
    ipos0 = ipos1 + 1;
  }

  //cout << ipos0 << " " << diff << endl;
  if (n - ipos0 >= len) nposs += diff / len;
  //cout << "poss: " << nposs << " " << nhits << endl;

  ipos0 = 0;
  set<int> hits;
  while (nposs >= nsh) {
    for (int j = 0; j < n; ++j) {
      size_t ipos1 = line.find("1",ipos0);
      if (ipos1 == string::npos) {
	if (n - ipos0 >= len) {
	  --nposs;
	  ++nhits;
	  ipos0 += len;
	  hits.insert(ipos0);
	  break;
	}
      }
      diff = ipos1 - ipos0;
      if (diff >= len) {
	--nposs;
	++nhits;
	ipos0 += len;
	hits.insert(ipos0);
	break;
      }
      ipos0 = ipos1 + 1;
    }
  }

  //cout << "poss: " << nposs << " " << nhits << endl;
  cout << nhits << endl;
  for (set<int>::iterator it = hits.begin(); it != hits.end(); ++it) cout << *it << " ";
  cout << endl;
}


#include <algorithm>
#include <iostream>
#include <fstream>
#include <vector>
#include <set>
#include <map>
#include <string>
using namespace std;

int main()
{
  int n, nsh, len, k;
  string line;

  cin >> n >> nsh >> len >> k;
  cin >> line;

  int nhits = 0, nposs = 0, diff = 0;
  size_t ipos0 = 0;
  for (int j = 0; j < n; ++j) {
    size_t ipos1 = line.find("1",ipos0);
    if (ipos1 == string::npos) break;
    //cout << (ipos1 - ipos0) << endl;
    diff = ipos1 - ipos0;
    if (diff >= len) {
      nposs += diff / len;
    }
    ipos0 = ipos1 + 1;
  }

  //cout << ipos0 << " " << diff << endl;
  if (n - ipos0 >= len) nposs += diff / len;
  //cout << "poss: " << nposs << " " << nhits << endl;

  ipos0 = 0;
  set<int> hits;
  while (nposs >= nsh) {
    for (int j = 0; j < n; ++j) {
      size_t ipos1 = line.find("1",ipos0);
      if (ipos1 == string::npos) {
	if (n - ipos0 >= len) {
	  --nposs;
	  ++nhits;
	  ipos0 += len;
	  hits.insert(ipos0-1);
	  break;
	}
      }
      diff = ipos1 - ipos0;
      if (diff >= len) {
	--nposs;
	++nhits;
	ipos0 += len;
	hits.insert(ipos0-1);
	break;
      }
      ipos0 = ipos1 + 1;
    }
  }

  //cout << "poss: " << nposs << " " << nhits << endl;
  cout << nhits << endl;
  for (set<int>::iterator it = hits.begin(); it != hits.end(); ++it) cout << *it << " ";
  cout << endl;
}


#include <algorithm>
#include <iostream>
#include <fstream>
#include <vector>
#include <set>
#include <map>
#include <string>
using namespace std;

int main()
{
  int n, nsh, len, k;
  string line;

  cin >> n >> nsh >> len >> k;
  cin >> line;

  int nhits = 0, nposs = 0, diff = 0;
  size_t ipos0 = 0;
  for (int j = 0; j < n; ++j) {
    size_t ipos1 = line.find("1",ipos0);
    if (ipos1 == string::npos) break;
    //cout << (ipos1 - ipos0) << endl;
    diff = ipos1 - ipos0;
    if (diff >= len) {
      nposs += diff / len;
    }
    ipos0 = ipos1 + 1;
  }

  //cout << ipos0 << " " << diff << endl;
  if (n - ipos0 >= len) nposs += diff / len;
  //cout << "poss: " << nposs << " " << nhits << endl;

  ipos0 = 0;
  set<int> hits;
  while (nposs >= nsh) {
    for (int j = 0; j < n; ++j) {
      size_t ipos1 = line.find("1",ipos0);
      if (ipos1 == string::npos) {
	if (n - ipos0 >= len) --nposs;
	++nhits;
	ipos0 += len;
	hits.insert(ipos0-1);
	break;
      }
      diff = ipos1 - ipos0;
      if (diff >= len) {
	--nposs;
	++nhits;
	ipos0 += len;
	hits.insert(ipos0-1);
	break;
      }
      ipos0 = ipos1 + 1;
    }
  }

  //cout << "poss: " << nposs << " " << nhits << endl;
  cout << nhits << endl;
  for (set<int>::iterator it = hits.begin(); it != hits.end(); ++it) cout << *it << " ";
  cout << endl;
}


#include <algorithm>
#include <iostream>
#include <fstream>
#include <vector>
#include <set>
#include <map>
#include <string>
using namespace std;

int main()
{
  int n, nsh, len, k;
  string line;

  //std::ifstream cin("battle.in");
  cin >> n >> nsh >> len >> k;
  cin >> line;
  line += "1";
  ++n;

  int nhits = 0, nposs = 0, diff = 0;
  size_t ipos0 = 0;
  for (int j = 0; j < n; ++j) {
    size_t ipos1 = line.find("1",ipos0);
    if (ipos1 == string::npos) break;
    //cout << (ipos1 - ipos0) << endl;
    diff = ipos1 - ipos0;
    if (diff >= len) {
      nposs += diff / len;
    }
    ipos0 = ipos1 + 1;
  }

  //cout << ipos0 << " " << diff << endl;
  //if (n - ipos0 >= len) nposs += diff / len;
  //cout << "poss: " << nposs << " " << nhits << endl;

  ipos0 = 0;
  set<int> hits;

  for (int j = 0; j < n; ++j) {
    size_t ipos1 = line.find("1",ipos0);
    if (ipos1 == string::npos) break;
    while (nposs >= nsh) {
      diff = ipos1 - ipos0;
      if (diff >= len) {
	--nposs;
	++nhits;
	ipos0 += len;
	hits.insert(ipos0);
      } else break;
    }
    ipos0 = ipos1 + 1;
  }

  //cout << "poss: " << nposs << " " << nhits << endl;
  cout << nhits << endl;
  for (set<int>::iterator it = hits.begin(); it != hits.end(); ++it) cout << *it << " ";
  cout << endl;
}


#include <algorithm>
#include <iostream>
#include <fstream>
#include <vector>
#include <set>
#include <map>
#include <string>
using namespace std;

int main()
{
  int n, nsh, len, k;
  string line;

  cin >> n >> nsh >> len >> k;
  cin >> line;
  line += "1";
  ++n;

  int nhits = 0, nposs = 0, diff = 0;
  size_t ipos0 = 0;
  for (int j = 0; j < n; ++j) {
    size_t ipos1 = line.find("1",ipos0);
    if (ipos1 == string::npos) break;
    //cout << (ipos1 - ipos0) << endl;
    diff = ipos1 - ipos0;
    if (diff >= len) {
      nposs += diff / len;
    }
    ipos0 = ipos1 + 1;
  }

  //cout << ipos0 << " " << diff << endl;
  //if (n - ipos0 >= len) nposs += diff / len;
  //cout << "poss: " << nposs << " " << nhits << endl;

  ipos0 = 0;
  set<int> hits;
  while (nposs >= nsh) {
    for (int j = 0; j < n; ++j) {
      size_t ipos1 = line.find("1",ipos0);
      if (ipos1 == string::npos) break;
      diff = ipos1 - ipos0;
      if (diff >= len) {
	--nposs;
	++nhits;
	ipos0 += len;
	hits.insert(ipos0);
	break;
      }
      ipos0 = ipos1 + 1;
    }
  }

  //cout << "poss: " << nposs << " " << nhits << endl;
  cout << nhits << endl;
  for (set<int>::iterator it = hits.begin(); it != hits.end(); ++it) cout << *it << " ";
  cout << endl;
}


#include <cstdio>
#include <vector>

int N, A, B, K;
char s[202000];
std::vector<int> f;
int main()
{
	scanf("%d%d%d%d", &N, &A, &B, &K);
	scanf(" %s", s);
	int c=0;
	for(int i=0;i<N;++i)
	{
		if(s[i] == '0')
			++c;
		else
			c=0;
		if(c == B)
			f.push_back(i+1), c=0;
	}
	printf("%d\n", f.size()-A+1);
	for(int i=0;i<f.size()-A+1;++i)
		printf("%d ", f[i]);
	return 0;
}


#include <bits/stdc++.h>

using namespace std;
typedef long long ll;

int main()
{
    int n,a,b,c;
    cin>>n>>a>>b>>c;
    string x;
    cin>>x;
    int cnt=0,l=-1,ans=0;
    for(int i=0;i<n;i++)
    {
        if(x[i]=='0'&&l==-1)
        {
            l=i;
        }
        if(x[i]=='1'&&l!=-1)
        {
            cnt+=((i-l))/b;
            l=-1;
        }
    }
    if(l!=-1)
    {
        cnt+=((n-l))/b;
    }
    //cout<<cnt<<endl;
    vector<int>sol;
    for(int i=0;i<n;i++)
    {
        if(cnt<a)
            break;
        if(x[i]=='0')
        {
            ans++;
            if(ans==b)
            {
                cnt--;
                sol.push_back(i+1);
                ans=0;
            }

        else
        {
            ans=0;
        }
    }
    cout<<sol.size()<<endl;
    for(int i=0;i<sol.size();i++)
    {
        cout<<sol[i]<<" ";
    }
    return 0;
}


#include <bits/stdc++.h>

using namespace std;
typedef long long ll;

int main()
{
    int n,a,b,c;
    cin>>n>>a>>b>>c;
    string x;
    cin>>x;
    int cnt=0,l=-1,ans=0;
    for(int i=0;i<n;i++)
    {
        if(x[i]=='0'&&l==-1)
        {
            l=i;
        }
        if(x[i]=='1'&&l!=-1)
        {
            cnt+=((i-l))/b;
            l=-1;
        }
    }
    if(l!=-1)
    {
        cnt+=((n-l))/b;
    }
    //cout<<cnt<<endl;
    vector<int>sol;
    for(int i=0;i<n;i++)
    {
        if(cnt<a)
            break;
        if(x[i]=='0')
        {
            ans++;
            if(ans==b)
            {
                cnt--;
                sol.push_back(i+1);
                ans=0;
            }
        }
    }
    cout<<sol.size()<<endl;
    for(int i=0;i<sol.size();i++)
    {
        cout<<sol[i]<<" ";
    }
    return 0;
}


#include <bits/stdc++.h>

using namespace std;
typedef long long ll;

int main()
{
    int n,a,b,c;
    cin>>n>>a>>b>>c;
    string x;
    cin>>x;
    int cnt=0,l=-1,ans=0;
    for(int i=0;i<n;i++)
    {
        if(x[i]=='0'&&l==-1)
        {
            l=i;
        }
        if(x[i]=='1'&&l!=-1)
        {
            cnt+=((i-l))/b;
            l=-1;
        }
    }
    if(l!=-1)
    {
        cnt+=((n-l))/b;
    }
    //cout<<cnt<<endl;
    vector<int>sol;
    for(int i=0;i<n;i++)
    {
        if(cnt<a)
            break;
        if(x[i]=='0')
        {
            ans++;
            if(ans==b)
            {
                cnt--;
                sol.push_back(i+1);
                ans=0;
            }
        }
        else
        {
            ans=0;
        }
    }
    cout<<sol.size()<<endl;
    for(int i=0;i<sol.size();i++)
    {
        cout<<sol[i]<<" ";
    }
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
int n,a,b,k;

int main()
{
	scanf("%d %d %d %d",&n,&a,&b,&k);
	int hold=0;
	char ans[200001],na=0;;
	for(int i=0;i<n;i++)
	{
		char tmp;
		scanf(" %c",&tmp);
		if(tmp=='0'){
			hold++;
			if(hold==b){
				ans[i]=1;
				hold=0;
				na++;
			}
		}
		else
			hold=0;
	}
	cout<<na-a+1<<endl;
	for(int i=0;i<n;i++)
	{
		if(a==1 && ans[i]==1)
		{
			cout<<i+1<<" ";
		}
		else if(a!=1 && ans[i]==1)
			a--;
	}
	cout<<endl;
	return 0;
}


#include <bits/stdc++.h>
using namespace std;

int main()
{
	int n,a,b,k,na=0;
	scanf("%d %d %d %d",&n,&a,&b,&k);
	int hold=0;
	char ans[200001];
	for(int i=0;i<n;i++)
	{
		char tmp;
		scanf(" %c",&tmp);
		if(tmp=='0'){
			hold++;
			if(hold==b){
				ans[i]=1;
				hold=0;
				na++;
			}
		}
		else
			hold=0;
	}
	cout<<na-a+1<<endl;
	for(int i=0;i<n;i++)
	{
		if(a==1 && ans[i]==1)
		{
			cout<<i+1<<" ";
		}
		else if(a!=1 && ans[i]==1)
			a--;
	}
	cout<<endl;
	return 0;
}


#include <bits/stdc++.h>
using namespace std;
int n,a,b,k;

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	string ss;
	cin>>n>>a>>b>>k>>ss;
	int hold=0;
	char ans[200001],na=0;;
	for(int i=0;i<n;i++)
	{
		if(ss[i]=='0'){
			hold++;
			if(hold==b){
				ans[i]=1;
				hold=0;
				na++;
			}
		}
		else
			hold=0;
	}
	cout<<na-a+1<<endl;
	for(int i=0;i<n;i++)
	{
		if(a==1 && ans[i]==1)
		{
			cout<<i+1<<" ";
		}
		else if(a!=1 && ans[i]==1)
			a--;
	}
	cout<<endl;
	return 0;
}