#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long lg;
#define cp copy (N.begin(), N.end(), u);
lg find_m(vector <lg>& N)
{
    lg m=1000000000;
    for (lg i=0; i!=N.size(); i++)
    {
        if (N[i]<m)
            m=N[i];
    }
    return m;
}
lg find_mx(vector <lg>& N)
{
    lg m=-1000000000;
    for (lg i=0; i!=N.size(); i++)
    {
        if (N[i]>m)
            m=N[i];
    }
    return m;
}
bool ost(lg x, lg y)
{
    bool b;
    if (x%y==0)
        b=true;
    else
        b=false;
    return b;
}

int main()
{
    lg n, a, x, y, z, k=0, d;
    cin>>n;
    vector <lg> N;
    vector <lg> X={1};
    for (lg i=0; i!=n; i++)
    {
        cin>>a;
        if (a==1)
            k++;
        N.push_back(a);
    }
    if (n==3)
    {
        sort (N.begin(), N.end());
        cout<<N[2]-N[0]<<endl;
        cout<<1<<" "<<2<<" "<<3;
        return 0;
    }
    if (ost(k, 3))
    {
        cout<<0<<endl;
    }
    else
    {
        cout<<1<<endl;
    }
    k++;
    d=k/3;
    for (lg i=0, s=0; X.size()!=3; i++)
    {
        if (N[i]==1)
        {
            s++;
        }
        if (s==d)
        {
            s=0;
            X.push_back(i+2);
        }
    }
    for (lg i:X)
    {
        cout<<i<<" ";
    }
}