#include <stdio.h>
int n, mxAns = 0, mnAns = 2147000000;
int N[10];
int C[4];
void DFS(int x, int y)
{
if(x == n)
{
if(mxAns < y) mxAns = y;
if(mnAns > y) mnAns = y;
}
else
{
for(int i = 0; i < 4; i++)
{
if(C[i] != 0) // 해당 수식의 개수가 남아있다면
{
C[i]--; // 쓴다
if(i == 0) DFS(x+1, y+N[x+1]);
else if(i == 1) DFS(x+1, y-N[x+1]);
else if(i == 2) DFS(x+1, y*N[x+1]);
else DFS(x+1, y/N[x+1]);
C[i]++; // 쓰고나면 다시 복구
}
}
}
}
int main()
{
scanf("%d", &n);
for(int i = 1; i <= n; i++)
{
scanf("%d", &N[i]);
}
for(int i = 0; i < 4; i++)
{
scanf("%d", &C[i]);
}
DFS(1, N[1]); // DFS(x,y) x : 입력 깊이, y : x 번째 숫자
printf("%d\n", mxAns);
printf("%d", mnAns);
return 0;
}