Problem: Polycarp loves ciphers. He has invented his own cipher called repeating.

Repeating cipher is used for strings. To encrypt the string s=s_{1}s_{2} ... s_{m} (1 ≤ m ≤ 10), Polycarp uses the following algorithm:

  * he writes down s_1 ones, 
  * he writes down s_2 twice, 
  * he writes down s_3 three times, 
  * ... 
  * he writes down s_m m times. 



For example, if s="bab" the process is: "b" → "baa" → "baabbb". So the encrypted s="bab" is "baabbb".

Given string t — the result of encryption of some string s. Your task is to decrypt it, i. e. find the string s.

Input

The first line contains integer n (1 ≤ n ≤ 55) — the length of the encrypted string. The second line of the input contains t — the result of encryption of some string s. It contains only lowercase Latin letters. The length of t is exactly n.

It is guaranteed that the answer to the test exists.

Output

Print such string s that after encryption it equals t.

Examples

Input


6
baabbb


Output


bab

Input


10
ooopppssss


Output


oops

Input


1
z


Output


z

Solution (in CPP):

Solution:
#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000007;
const long long inf = 1000000000000000000;
long long mpow(long long a, long long b) {
  a %= mod;
  if (!b) return 1;
  long long temp = mpow(a, b / 2);
  temp = (temp * temp) % mod;
  if (b % 2) return (a * temp) % mod;
  return temp;
}
long long pow_(long long a, long long b) {
  if (!b) return 1;
  long long temp = pow_(a, b / 2);
  temp = (temp * temp);
  if (b % 2) return (a * temp);
  return temp;
}
long long gcd(long long a, long long b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
bool isPrime(long long n) {
  if (n <= 1) return false;
  if (n <= 3) return true;
  if (n % 2 == 0 || n % 3 == 0) return false;
  for (long long i = 5; i * i <= n; i = i + 6)
    if (n % i == 0 || n % (i + 2) == 0) return false;
  return true;
}
bool isPalin(string s) {
  int i = 0, j = s.size() - 1;
  while (i < j) {
    if (s[i++] != s[j--]) {
      return false;
    }
  }
  return true;
}
long long cl(long long a, long long b) {
  if (a % b) return 1 + a / b;
  return a / b;
}
bool isPowerOfTwo(long long n) {
  if (n == 0) return false;
  return (ceil(log2(n)) == floor(log2(n)));
}
long long f[200001];
long long mod_inv(long long n, long long MOD) { return mpow(n, MOD - 2); }
long long nCr(long long n, long long r, long long MOD) {
  return (f[n] * ((mod_inv(f[r], MOD) * mod_inv(f[n - r], MOD)) % MOD)) % MOD;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long int t;
  t = 1;
  while (t--) {
    long long int n, m, i, j, a[500002], b[500002];
    long long int cn = 0, flag = 0, num, k, ans = 0, sum = 0;
    string s;
    vector<long long int> v;
    vector<pair<long long int, long long int> > vp;
    map<long long int, long long int> mapp;
    cin >> n;
    cin >> s;
    string anss;
    anss = "";
    k = 1;
    for (i = 0; i < n; i++) {
      if (i == cn) {
        anss += s[i];
        cn += k;
        k++;
      }
    }
    cout << anss << endl;
  }
  return 0;
}