import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintWriter; import java.math.BigInteger; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.InputMismatchException; import java.util.LinkedList; import java.util.Map; import java.util.PriorityQueue; import java.util.Queue; import java.util.TreeMap; public class code2 { static class pair implements Comparable { Integer x,y; pair(int x,int y) { this.x=x; this.y=y; } public int compareTo(pair o) { if(x!=o.x) return x.compareTo(o.x); else return y.compareTo(o.y); } } static long mod=1000000007; static boolean prime[]; public static void main(String args[]) { InputReader in=new InputReader(System.in); PrintWriter w=new PrintWriter(System.out); int n=in.nextInt(); long a[]=new long[n]; for(int i=0;i=0;i--) { ans+=Math.pow(2,c)*a[i]; c++; } System.out.println(ans); } public static int bsupper(int a[],int item) { int low=0,high=a.length-1,ans=-1; while(low<=high) { int mid=low+(high-low)/2; if(a[mid]>=item) { ans=mid; high=mid-1; } else low=mid+1; } return ans; } public static boolean isprime(int n) { for(int i=2;i*i<=n;i++) { if(n%i==0) return false; } return true; } public static long fact(long a,long mod) { long ans=1; for(int i=1;i<=a;i++) { ans*=i; ans%=mod; } return ans%mod; } public static long ncr(long n,long r,long mod) { long nom=1,dom=1; nom=(fact(n,mod))%mod; dom=(fact(r,mod)*fact(n-r,mod))%mod; return (nom*fastpow(dom,mod-2,mod))%mod; } public static long gcd(long x, long y) { if(x==0) return y; if(y==0) return x; long r=0, a, b; a = (x > y) ? x : y; // a is greater number b = (x < y) ? x : y; // b is smaller number r = b; while(a % b != 0) { r = a % b; a = b; b = r; } return r; } public static void prime(int n) { prime[0]=true; prime[1]=true; for(int i=2;i*i<=n;i++) { if(prime[i]) continue; for(int j=i;j*i<=n;j++) { prime[i*j]=true; } } } static class InputReader { private final InputStream stream; private final byte[] buf = new byte[8192]; private int curChar, snumChars; private SpaceCharFilter filter; public InputReader(InputStream stream) { this.stream = stream; } public int snext() { if (snumChars == -1) throw new InputMismatchException(); if (curChar >= snumChars) { curChar = 0; try { snumChars = stream.read(buf); } catch (IOException e) { throw new InputMismatchException(); } if (snumChars <= 0) return -1; } return buf[curChar++]; } public int nextInt() { int c = snext(); while (isSpaceChar(c)) { c = snext(); } int sgn = 1; if (c == '-') { sgn = -1; c = snext(); } int res = 0; do { if (c < '0' || c > '9') throw new InputMismatchException(); res *= 10; res += c - '0'; c = snext(); } while (!isSpaceChar(c)); return res * sgn; } public long nextLong() { int c = snext(); while (isSpaceChar(c)) { c = snext(); } int sgn = 1; if (c == '-') { sgn = -1; c = snext(); } long res = 0; do { if (c < '0' || c > '9') throw new InputMismatchException(); res *= 10; res += c - '0'; c = snext(); } while (!isSpaceChar(c)); return res * sgn; } public int[] nextIntArray(int n) { int a[] = new int[n]; for (int i = 0; i < n; i++) { a[i] = nextInt(); } return a; } public String readString() { int c = snext(); while (isSpaceChar(c)) { c = snext(); } StringBuilder res = new StringBuilder(); do { res.appendCodePoint(c); c = snext(); } while (!isSpaceChar(c)); return res.toString(); } public String nextLine() { int c = snext(); while (isSpaceChar(c)) c = snext(); StringBuilder res = new StringBuilder(); do { res.appendCodePoint(c); c = snext(); } while (!isEndOfLine(c)); return res.toString(); } public boolean isSpaceChar(int c) { if (filter != null) return filter.isSpaceChar(c); return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1; } private boolean isEndOfLine(int c) { return c == '\n' || c == '\r' || c == -1; } public interface SpaceCharFilter { public boolean isSpaceChar(int ch); } } public static long fastpow(long a,long b,long mod) { long ans=1; while(b!=0) { if(b%2==1) { ans=(ans*a)%mod; } a=(a*a)%mod; b/=2; } return ans; } }