#include <bits/stdc++.h>
using namespace std;
template <class T>
bool umin(T& a, T b) {
  if (a > b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
bool umax(T& a, T b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
char s[39];
long long pw[22], dp[39][19][19];
int n;
bool way[39][19][19];
long long rec(int x, int y, int z) {
  if (x > n * 2) return 0;
  long long& ret = dp[x][y][z];
  if (~ret) return ret;
  if (y >= 1) umax(ret, rec(x + 1, y - 1, z) + pw[y - 1] * (s[x] - '0'));
  if (z >= 1) {
    if (umax(ret, rec(x + 1, y, z - 1) + pw[z - 1] * (s[x] - '0')))
      way[x][y][z] = true;
  }
  return ret;
}
void print(int x, int y, int z) {
  if (x > n * 2) return;
  if (!way[x][y][z]) {
    printf("H");
    print(x + 1, y - 1, z);
  } else {
    printf("M");
    print(x + 1, y, z - 1);
  }
}
int main() {
  memset(dp, -1, sizeof dp);
  pw[0] = 1LL;
  for (int i = 1; i < 18; i++) pw[i] = pw[i - 1] * 10LL;
  scanf("%d", &n);
  scanf("%s", s + 1);
  rec(1, n, n);
  print(1, n, n);
  return 0;
}
