#include <bits/stdc++.h>
const int oo = 0x7fffffff;
const long long OO = 0x7fffffffffffffff;
template <class T>
std::ostream& operator<<(std::ostream& O, const std::vector<T>& V) {
  for (const T& x : V) O << x << " ";
  O << "\n";
  return O;
}
template <class T1, class T2>
std::ostream& operator<<(std::ostream& O, const std::pair<T1, T2>& P) {
  return O << "(" << P.first << ", " << P.second << ")";
}
std::mt19937 rng(std::chrono::steady_clock::now().time_since_epoch().count());
using namespace std;
const int M = 'z' - 'a' + 1;
void sum(string& A, const string& B, int r = 0) {
  int l = A.size();
  for (int i = 0, x; i < l; ++i) {
    x = (A[i] + B[i] - 'a' - 'a' + r);
    r = x / M;
    x %= M;
    A[i] = x + 'a';
  }
  if (r) A += char(r + 'a');
}
void div2(string& A) {
  reverse(A.begin(), A.end());
  string B;
  int r = 0, l = A.size();
  for (int i = 0, x; i < l; ++i) {
    x = A[i] + r * M - 'a';
    r = x % 2;
    x /= 2;
    B += char('a' + x);
  }
  A = B;
}
int main() {
  std::ios_base::sync_with_stdio(false);
  std::cin.tie(0);
  std::cout.tie(0);
  ;
  int n;
  cin >> n;
  string A, B;
  cin >> A >> B;
  reverse(A.begin(), A.end());
  reverse(B.begin(), B.end());
  ;
  ;
  sum(A, B);
  ;
  div2(A);
  ;
  if (A.size() > n) A.erase(0, 1);
  cout << A << "\n";
  return 0;
}
