#include <cstdio>#include <cstring>#include <vector>using namespace std;#define INF 100000000int n,cs;int t[222],d[222];int dp[222][222][2];int ck[222][222][2];int d1[222][222][2];int d2[222][222][2];int d3[222][222][2];int go(int s, int e, int p) {if(s == e) return 0;int &ret = dp[s][e][p];int &p1 = d1[s][e][p];int &p2 = d2[s][e][p];int &p3 = d3[s][e][p];if(ck[s][e][p] == cs) return ret;ck[s][e][p] = cs, ret = INF;int tmp,add;if(!p) {tmp = go(s+1,e,0), add = d[s+1] - d[s];if(t[s] > tmp + add && ret > tmp + add) {ret = tmp + add;p1 = s+1, p2 = e, p3 = 0;}tmp = go(s+1,e,1), add = d[e] - d[s];if(t[s] > tmp + add && ret > tmp + add) {ret = tmp + add;p1 = s+1, p2 = e, p3 = 1;}}else {tmp = go(s,e-1,1), add = d[e] - d[e-1];if(t[e] > tmp + add && ret > tmp + add) {ret = tmp + add;p1 = s, p2 = e-1, p3 = 1;}tmp = go(s,e-1,0), add = d[e] - d[s];if(t[e] > tmp + add && ret > tmp + add) {ret = tmp + add;p1 = s, p2 = e-1, p3 = 0;}} return ret;}void build(int s, int e, int p, int cnt) {if(!p) printf("%d",s+1);else printf("%d",e+1);if(cnt != n) printf(" ");int ns = d1[s][e][p];int ne = d2[s][e][p];int np = d3[s][e][p];if(ns != -1) build(ns,ne,np,cnt+1);}int main() {while(scanf("%d",&n) != -1) {memset(d1,-1,sizeof(d1));memset(d2,-1,sizeof(d2));memset(d3,-1,sizeof(d3));cs++;for(int i=0;i<n;++i) scanf("%d",t+i);for(int i=0;i<n;++i) scanf("%d",d+i);if(go(0,n-1,0) != INF) {build(0,n-1,0,1), puts("");}else if(go(0,n-1,1) != INF) {build(0,n-1,1,1), puts("");}else printf("Mission Impossiblen");}}


