uses math;
const fi='';
fo='';
maxn=5000+2;
var f:array[0..maxn,0..maxn] of longint;
a,b,cs:array[1..maxn] of longint;
res:array[1..maxn] of longint;
dem,n,i,j:Longint;
free:array[1..maxn] of boolean;
procedure nhap;
begin
assign(input,fi);reset(Input);
readln(n);
for i:=1 to n do read(a[i]);
for i:=1 to n do read(b[i]);
close(input);
end;
procedure init;
begin
for i:=1 to n do cs[i]:=i;
end;
procedure swap(var x,y:longint);
var w:longint;
begin
w:=x;x:=y;y:=w;
end;
procedure qs(l,r:longint);
var i,j,x:longint;
begin
i:=l;j:=r;
x:=a[(l+r) div 2];
repeat
while x<a[i] do inc(i);
while x>a[j] do dec(j);
if i<=j then
begin
swap(a[i],a[j]);
swap(b[i],b[j]);
swap(cs[i],cs[j]);
inc(i);dec(j);
end;
until i>j;
if i<r then qs(i,r);
if j>l then qs(l,j);
end;
procedure xuly;
begin
{f[1,0]:=b[1];}
qs(1,n);
for i:=2 to n do
for j:=1 to i div 2 do
begin
f[i,j]:=max(f[i-1,j],f[i-1,j-1]+b[i]);
end;
end;
procedure trace;
begin
i:=n; j:=n div 2;
while (i<>0) and (j<>0) do
begin
if f[i,j]=f[i-1,j-1]+b[i] then
begin
inc(dem);
res[dem]:=i;
free[i]:=true;
dec(i);dec(j);
end else dec(i);
end;
end;
procedure inkq;
begin
assign(output,fo);rewrite(output);
writeln(f[n,n div 2]);
for i:=1 to dem do
begin
for j:=res[i]-1 downto 1 do
if free[j]=false then
begin
write(cs[j],' ');
free[j]:=true;
break;
end;
write(cs[res[i]],' ');
writeln;
end;
close(output);
end;
begin
nhap;
init;
xuly;
trace;
inkq;
end.
dXNlcyAgICBtYXRoOwpjb25zdCAgIGZpPScnOwogICAgICAgIGZvPScnOwogICAgICAgIG1heG49NTAwMCsyOwp2YXIgICAgIGY6YXJyYXlbMC4ubWF4biwwLi5tYXhuXSBvZiBsb25naW50OwogICAgICAgIGEsYixjczphcnJheVsxLi5tYXhuXSBvZiBsb25naW50OwogICAgICAgIHJlczphcnJheVsxLi5tYXhuXSBvZiBsb25naW50OwogICAgICAgIGRlbSxuLGksajpMb25naW50OwogICAgICAgIGZyZWU6YXJyYXlbMS4ubWF4bl0gb2YgYm9vbGVhbjsKcHJvY2VkdXJlIG5oYXA7CmJlZ2luCiAgICBhc3NpZ24oaW5wdXQsZmkpO3Jlc2V0KElucHV0KTsKICAgIHJlYWRsbihuKTsKICAgIGZvciBpOj0xIHRvIG4gZG8gcmVhZChhW2ldKTsKICAgIGZvciBpOj0xIHRvIG4gZG8gcmVhZChiW2ldKTsKICAgIGNsb3NlKGlucHV0KTsKZW5kOwpwcm9jZWR1cmUgaW5pdDsKYmVnaW4KICAgIGZvciBpOj0xIHRvIG4gZG8gY3NbaV06PWk7CmVuZDsKcHJvY2VkdXJlIHN3YXAodmFyIHgseTpsb25naW50KTsKdmFyICAgICB3OmxvbmdpbnQ7CmJlZ2luCiAgICB3Oj14O3g6PXk7eTo9dzsKZW5kOwpwcm9jZWR1cmUgcXMobCxyOmxvbmdpbnQpOwp2YXIgICAgIGksaix4OmxvbmdpbnQ7CmJlZ2luCiAgICBpOj1sO2o6PXI7CiAgICB4Oj1hWyhsK3IpIGRpdiAyXTsKICAgIHJlcGVhdAogICAgICAgIHdoaWxlIHg8YVtpXSBkbyBpbmMoaSk7CiAgICAgICAgd2hpbGUgeD5hW2pdIGRvIGRlYyhqKTsKICAgICAgICBpZiBpPD1qIHRoZW4KICAgICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICAgICAgc3dhcChhW2ldLGFbal0pOwogICAgICAgICAgICAgICAgICAgIHN3YXAoYltpXSxiW2pdKTsKICAgICAgICAgICAgICAgICAgICBzd2FwKGNzW2ldLGNzW2pdKTsKICAgICAgICAgICAgICAgICAgICBpbmMoaSk7ZGVjKGopOwogICAgICAgICAgICAgICAgZW5kOwogICAgdW50aWwgaT5qOwogICAgaWYgaTxyIHRoZW4gcXMoaSxyKTsKICAgIGlmIGo+bCB0aGVuIHFzKGwsaik7CmVuZDsKcHJvY2VkdXJlIHh1bHk7CmJlZ2luCiAgICB7ZlsxLDBdOj1iWzFdO30KICAgIHFzKDEsbik7CiAgICBmb3IgaTo9MiB0byBuIGRvCiAgICAgICAgZm9yIGo6PTEgdG8gaSBkaXYgMiBkbwogICAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICAgICBmW2ksal06PW1heChmW2ktMSxqXSxmW2ktMSxqLTFdK2JbaV0pOwogICAgICAgICAgICAgICAgZW5kOwplbmQ7CnByb2NlZHVyZSB0cmFjZTsKYmVnaW4KICAgIGk6PW47IGo6PW4gZGl2IDI7CiAgICB3aGlsZSAoaTw+MCkgYW5kIChqPD4wKSBkbwogICAgICAgIGJlZ2luCiAgICAgICAgICAgIGlmIGZbaSxqXT1mW2ktMSxqLTFdK2JbaV0gdGhlbgogICAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICAgICAgICAgaW5jKGRlbSk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlc1tkZW1dOj1pOwogICAgICAgICAgICAgICAgICAgICAgICBmcmVlW2ldOj10cnVlOwogICAgICAgICAgICAgICAgICAgICAgICBkZWMoaSk7ZGVjKGopOwogICAgICAgICAgICAgICAgZW5kIGVsc2UgZGVjKGkpOwogICAgICAgIGVuZDsKZW5kOwpwcm9jZWR1cmUgaW5rcTsKYmVnaW4KICAgIGFzc2lnbihvdXRwdXQsZm8pO3Jld3JpdGUob3V0cHV0KTsKICAgIHdyaXRlbG4oZltuLG4gZGl2IDJdKTsKICAgIGZvciBpOj0xIHRvIGRlbSBkbwogICAgICAgIGJlZ2luCiAKICAgICAgICAgICAgZm9yIGo6PXJlc1tpXS0xIGRvd250byAxIGRvCiAgICAgICAgICAgICAgICBpZiBmcmVlW2pdPWZhbHNlIHRoZW4KICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlKGNzW2pdLCcgJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmVlW2pdOj10cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIGVuZDsKICAgICAgICAgICAgd3JpdGUoY3NbcmVzW2ldXSwnICcpOwogICAgICAgICAgICB3cml0ZWxuOwogICAgICAgIGVuZDsKICAgIGNsb3NlKG91dHB1dCk7CmVuZDsKYmVnaW4KICAgIG5oYXA7CiAgICBpbml0OwogICAgeHVseTsKICAgIHRyYWNlOwogICAgaW5rcTsKZW5kLg==