#include <iostream>
#include<string.h>
#define Max 20
using namespace std;
int w[Max];
int maxw=0;
int x[Max];
void dfs(int tw,int rw,int op[],int i,int c1,int n,int w[])
{
if(i>n)
{
if(tw<=c1&&tw>maxw){
maxw=tw;
for(int j=1;j<=n;j++)
x[j]=op[j];
}
}
else{
op[i]=1;
if(tw+w[i]<=c1)
{
if(tw+w[i]<=c1)
dfs(tw+w[i],rw-w[i],op,i+1,c1,n,w);
}
}
}
void display(int n,int w[])
{
for(int j=1;j<=n;j++)
{
if(x[j]==1)
{
cout<<"第"<<j<<"集装箱装进第一艘船"<<endl;
}
else
{
cout<<"第"<<j<<"个集装箱装进第二艘船"<<endl;
}
}
}
bool solve(int c2,int n,int w[])
{
int sum=0;
for(int i=1;i<=n;i++)
{
if(x[i]==0)
sum+=w[i];
if(sum>c2)
return false;
else
return true;
}
}
int main() {
int op[Max]={0};
int rw=0,n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>w[i];
}
int c1,c2;
cin>>c1>>c2;
for(int i=1;i<=n;i++)
rw+=w[i];
dfs(0,rw,op,1,c1,n,w);
if(solve(c2,n,w))
{
cout<<"装载方案"<<endl;
display(n,w);
}
else{
cout<<"无正确方案";
}
return 0;
}