//Don't act like a loser.
//This code is written by huayucaiji
//You can only use the code for studying or finding mistakes
//Or,you'll be punished by Sakyamuni!!!
#include<bits/stdc++.h>
#define int long long
using namespace std;

int read() {
	char ch=getchar();
	int f=1,x=0;
	while(ch<'0'||ch>'9') {
		if(ch=='-')
			f=-1;
		ch=getchar();
	}
	while(ch>='0'&&ch<='9') {
		x=x*10+ch-'0';
		ch=getchar();
	}
	return f*x;
}

const int MAXN=205,MOD=200;

int n,cnt;
int a[MAXN],route[MAXN][MAXN];
vector<int> v[MAXN];

void out(int x) {
	int sz=v[x].size();
	cout<<sz<<" ";
	for(int i=0;i<sz;i++) {
		cout<<v[x][i]<<" ";
	}
	puts("");
	return ;
}

signed main() {
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	
	cin>>n;
	for(int i=1;i<=n;i++) {
		a[i]=read()%MOD;
	}
	
	for(int i=1;i<=n;i++) {
		for(int j=0;j<MOD;j++) {
			if(!route[i][j]&&j!=0) {
				continue;
			}
			if(route[i+1][j]) {
				puts("yes");
				out(route[i+1][j]);
				out(route[i][j]);
				return 0;
			}
			else {
				route[i+1][j]=route[i][j];
			}
		}
		for(int j=0;j<MOD;j++) {
			if(!route[i][j]&&j!=0) {
				continue;
			}
			if(route[i+1][(j+a[i])%MOD]) {
				puts("yes");
				out(route[i+1][(j+a[i])%MOD]);
				v[route[i][j]].push_back(i);
				out(route[i][j]);
				return 0;
			}
			v[++cnt]=v[route[i][j]];
			v[cnt].push_back(i);
			route[i+1][(j+a[i])%MOD]=cnt;
		}
	}
	
	puts("NO");

	//fclose(stdin);
	//fclose(stdout);
	return 0;
}

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int n, a[205];
vector<int> c[205], b;
void dfs(int x, int sum) {
    if (c[sum].size() && b != c[sum]) {
        cout << "Yes\n";
        cout << b.size() << ' ';
        for (int i : b) cout << i << ' ';
        cout << "\n";
        cout << c[sum].size() << ' ';
        for (int i : c[sum]) cout << i << ' ';
        cout << "\n";
        exit(0);
    } else if (b.size())
        c[sum] = b;
    if (x == n + 1) return;
    dfs(x + 1, sum);
    b.push_back(x), dfs(x + 1, (sum + a[x]) % 200), b.pop_back();
}

void solve() {
    cin >> n;
    for (int i = 1; i <= n; ++i) cin >> a[i];
    dfs(1, 0);
    cout << "No\n";
}
int main() {
    ios::sync_with_stdio(false), cin.tie(nullptr);
    solve();
    return 0;
}