#include using namespace std; unsigned n,a,b,c; unsigned Result() { if(n == 1)return a; if(n == 2)return max(a,b*2); unsigned maxP = max(max(a/2,b/3*2),c); if(maxP == c) return n*c; if(maxP == b/3*2) { unsigned res = 0; res+=n/3*2*b; if(n%b == 2)res+=2*b; if(n%b == 1)res+=max(a,2*c); return res; } if(maxP == a/2) { unsigned res = 0; res+=n/2*a; if(n%2)res+=a; return res; } return -1; } int main() { cin >> n >> a >> b >> c; cout << Result(); return 0; }