Problem: Polycarp is mad about coding, that is why he writes Sveta encoded messages. He calls the median letter in a word the letter which is in the middle of the word. If the word's length is even, the median letter is the left of the two middle letters. In the following examples, the median letter is highlighted: contest, info. If the word consists of single letter, then according to above definition this letter is the median letter. 

Polycarp encodes each word in the following way: he writes down the median letter of the word, then deletes it and repeats the process until there are no letters left. For example, he encodes the word volga as logva.

You are given an encoding s of some word, your task is to decode it. 

Input

The first line contains a positive integer n (1 ≤ n ≤ 2000) — the length of the encoded word.

The second line contains the string s of length n consisting of lowercase English letters — the encoding.

Output

Print the word that Polycarp encoded.

Examples

Input

5
logva


Output

volga


Input

2
no


Output

no


Input

4
abba


Output

baba

Note

In the first example Polycarp encoded the word volga. At first, he wrote down the letter l from the position 3, after that his word looked like voga. After that Polycarp wrote down the letter o from the position 2, his word became vga. Then Polycarp wrote down the letter g which was at the second position, the word became va. Then he wrote down the letter v, then the letter a. Thus, the encoding looked like logva.

In the second example Polycarp encoded the word no. He wrote down the letter n, the word became o, and he wrote down the letter o. Thus, in this example, the word and its encoding are the same.

In the third example Polycarp encoded the word baba. At first, he wrote down the letter a, which was at the position 2, after that the word looked like bba. Then he wrote down the letter b, which was at the position 2, his word looked like ba. After that he wrote down the letter b, which was at the position 1, the word looked like a, and he wrote down that letter a. Thus, the encoding is abba.

Solution (in JAVA):

Solution:
import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;
import java.io.IOException;import java.io.PrintStream;import java.io.PrintWriter;
import java.security.AccessControlException;import java.util.Arrays;import java.util.Collection;
import java.util.Comparator;import java.util.List;import java.util.Map;import java.util.Objects;
import java.util.Scanner;import java.util.TreeMap;import java.util.function.Function;
import java.util.stream.Collectors;import java.util.stream.IntStream;import java.util.stream.LongStream;
import java.util.stream.Stream;public class _p000746B {static public void main(final String[] args) 
throws IOException{p000746B._main(args);}
static private class p000746B extends Solver{public p000746B(){nameIn="in/900/p000746B.in"
;singleTest=true;}@Override public void solve()throws IOException{int n=sc.nextInt
();if(sc.hasNextLine()){sc.nextLine();}String s=sc.nextLine().trim();char[]cres=
new char[n];int begin=0;int end=n-1;for(int i=0;i<n;i++){if(i%2==0){cres[end]=s.
charAt(n-1-i);end--;}else{cres[begin]=s.charAt(n-1-i);begin++;}}pw.println(String
.valueOf(cres));}static public void _main(String[]args)throws IOException{new p000746B
().run();}}static private class Pair<K,V>{private K k;private V v;public Pair(final
 K t,final V u){this.k=t;this.v=u;}public K getKey(){return k;}public V getValue
(){return v;}}static private abstract class Solver{protected String nameIn=null;
protected String nameOut=null;protected boolean singleTest=false;protected boolean
 preprocessDebug=false;protected boolean doNotPreprocess=false;protected PrintStream
 debugPrintStream=null;protected Scanner sc=null;protected PrintWriter pw=null;final
 static String SPACE=" ";final static String SPACES="\\s+";private void process(
)throws IOException{if(!singleTest){int t=lineToIntArray()[0];while(t-->0){solve
();}}else{solve();}}abstract protected void solve()throws IOException;protected 
String[]lineToArray()throws IOException{return sc.nextLine().trim().split(SPACES
);}protected int[]lineToIntArray()throws IOException{return Arrays.stream(lineToArray
()).mapToInt(Integer::valueOf).toArray();}protected long[]lineToLongArray()throws
 IOException{return Arrays.stream(lineToArray()).mapToLong(Long::valueOf).toArray
();}protected void run()throws IOException{boolean done=false;try{if(nameIn!=null
 && new File(nameIn).exists()){try(FileInputStream fis=new FileInputStream(nameIn
);PrintWriter pw0=select_output();){done=true;sc=new Scanner(fis);pw=pw0;process
();}}}catch(IOException ex){}catch(AccessControlException ex){}if(!done){try(PrintWriter
 pw0=select_output();){sc=new Scanner(System.in);pw=pw0;process();}}}private PrintWriter
 select_output()throws FileNotFoundException{if(nameOut!=null){return new PrintWriter
(nameOut);}return new PrintWriter(System.out);}public static Map<Integer,List<Integer
>>mapi(final int[]a){return IntStream.range(0,a.length).collect(()->new TreeMap<
Integer,List<Integer>>(),(res,i)->{if(!res.containsKey(a[i])){res.put(a[i],Stream
.of(i).collect(Collectors.toList()));}else{res.get(a[i]).add(i);}},Map::putAll);
}public static Map<Long,List<Integer>>mapi(final long[]a){return IntStream.range
(0,a.length).collect(()->new TreeMap<Long,List<Integer>>(),(res,i)->{if(!res.containsKey
(a[i])){res.put(a[i],Stream.of(i).collect(Collectors.toList()));}else{res.get(a[
i]).add(i);}},Map::putAll);}public static<T>Map<T,List<Integer>>mapi(final T[]a)
{return IntStream.range(0,a.length).collect(()->new TreeMap<T,List<Integer>>(),(
res,i)->{if(!res.containsKey(a[i])){res.put(a[i],Stream.of(i).collect(Collectors
.toList()));}else{res.get(a[i]).add(i);}},Map::putAll);}public static<T>Map<T,List
<Integer>>mapi(final T[]a,Comparator<T>cmp){return IntStream.range(0,a.length).collect
(()->new TreeMap<T,List<Integer>>(cmp),(res,i)->{if(!res.containsKey(a[i])){res.
put(a[i],Stream.of(i).collect(Collectors.toList()));}else{res.get(a[i]).add(i);}
},Map::putAll);}public static Map<Integer,List<Integer>>mapi(final IntStream a){
int[]i=new int[]{0};return a.collect(()->new TreeMap<Integer,List<Integer>>(),(res
,v)->{if(!res.containsKey(v)){res.put(v,Stream.of(i[0]).collect(Collectors.toList
()));}else{res.get(v).add(i[0]);}i[0]++;},Map::putAll);}public static Map<Long,List
<Integer>>mapi(final LongStream a){int[]i=new int[]{0};return a.collect(()->new 
TreeMap<Long,List<Integer>>(),(res,v)->{if(!res.containsKey(v)){res.put(v,Stream
.of(i[0]).collect(Collectors.toList()));}else{res.get(v).add(i[0]);}i[0]++;},Map
::putAll);}public static<T>Map<T,List<Integer>>mapi(final Stream<T>a,Comparator<
T>cmp){int[]i=new int[]{0};return a.collect(()->new TreeMap<T,List<Integer>>(cmp
),(res,v)->{if(!res.containsKey(v)){res.put(v,Stream.of(i[0]).collect(Collectors
.toList()));}else{res.get(v).add(i[0]);}},Map::putAll);}public static<T>Map<T,List
<Integer>>mapi(final Stream<T>a){int[]i=new int[]{0};return a.collect(()->new TreeMap
<T,List<Integer>>(),(res,v)->{if(!res.containsKey(v)){res.put(v,Stream.of(i[0]).
collect(Collectors.toList()));}else{res.get(v).add(i[0]);}},Map::putAll);}public
 static List<int[]>listi(final int[]a){return IntStream.range(0,a.length).mapToObj
(i->new int[]{a[i],i}).collect(Collectors.toList());}public static List<long[]>listi
(final long[]a){return IntStream.range(0,a.length).mapToObj(i->new long[]{a[i],i
}).collect(Collectors.toList());}public static<T>List<Pair<T,Integer>>listi(final
 T[]a){return IntStream.range(0,a.length).mapToObj(i->new Pair<T,Integer>(a[i],i
)).collect(Collectors.toList());}public static List<int[]>listi(final IntStream 
a){int[]i=new int[]{0};return a.mapToObj(v->new int[]{v,i[0]++}).collect(Collectors
.toList());}public static List<long[]>listi(final LongStream a){int[]i=new int[]
{0};return a.mapToObj(v->new long[]{v,i[0]++}).collect(Collectors.toList());}public
 static<T>List<Pair<T,Integer>>listi(final Stream<T>a){int[]i=new int[]{0};return
 a.map(v->new Pair<T,Integer>(v,i[0]++)).collect(Collectors.toList());}public static
 String join(final int[]a){return Arrays.stream(a).mapToObj(Integer::toString).collect
(Collectors.joining(SPACE));}public static String join(final long[]a){return Arrays
.stream(a).mapToObj(Long::toString).collect(Collectors.joining(SPACE));}public static
<T>String join(final T[]a){return Arrays.stream(a).map(v->Objects.toString(v)).collect
(Collectors.joining(SPACE));}public static<T>String join(final T[]a,final Function
<T,String>toString){return Arrays.stream(a).map(v->toString.apply(v)).collect(Collectors
.joining(SPACE));}public static<T>String join(final Collection<T>a){return a.stream
().map(v->Objects.toString(v)).collect(Collectors.joining(SPACE));}public static
<T>String join(final Collection<T>a,final Function<T,String>toString){return a.stream
().map(v->toString.apply(v)).collect(Collectors.joining(SPACE));}public static<T
>String join(final Stream<T>a){return a.map(v->Objects.toString(v)).collect(Collectors
.joining(SPACE));}public static<T>String join(final Stream<T>a,final Function<T,
String>toString){return a.map(v->toString.apply(v)).collect(Collectors.joining(SPACE
));}public static<T>String join(final IntStream a){return a.mapToObj(Integer::toString
).collect(Collectors.joining(SPACE));}public static<T>String join(final LongStream
 a){return a.mapToObj(Long::toString).collect(Collectors.joining(SPACE));}public
 static List<Integer>list(final int[]a){return Arrays.stream(a).mapToObj(Integer
::valueOf).collect(Collectors.toList());}public static List<Integer>list(final IntStream
 a){return a.mapToObj(Integer::valueOf).collect(Collectors.toList());}public static
 List<Long>list(final long[]a){return Arrays.stream(a).mapToObj(Long::valueOf).collect
(Collectors.toList());}public static List<Long>list(final LongStream a){return a
.mapToObj(Long::valueOf).collect(Collectors.toList());}public static<T>List<T>list
(final Stream<T>a){return a.collect(Collectors.toList());}public static<T>List<T
>list(final T[]a){return Arrays.stream(a).collect(Collectors.toList());}}}