func_code_string: #include <bits/stdc++.h>   using namespace std;   const double pi = acos(-1.0);   template <typename T, typename U>   inline void amin(T &x, U y) {     if (y < x) x = y;   }   template <typename T, typename U>   inline void amax(T &x, U y) {     if (x < y) x = y;   }   template <class L, class R>   ostream &operator<<(ostream &os, pair<L, R> P) {     return os <<  (  << P.first <<  ,  << P.second <<  ) n ;   }   template <class T>   ostream &operator<<(ostream &os, set<T> V) {     os <<  [ ;     for (auto vv : V) os << vv <<  ,  ;     return os <<   b b] n ;   }   template <class T>   ostream &operator<<(ostream &os, vector<T> V) {     os <<  [ ;     for (auto vv : V) os << vv <<  ,  ;     return os <<   b b] n ;   }   template <class K, class X>   ostream &operator<<(ostream &os, map<K, X> V) {     os <<  [ ;     for (auto vv : V) os << vv <<  ,  ;     return os <<   b b] n ;   }   long int ceildiv(long int n, long int f) {     if (n % f) {       return n / f + 1;     } else       return n / f;   }   string checkTicket(vector<long> first, vector<long> second) {     int n = first.size();     if (first[0] < second[0]) {       for (int i = 0; i < n; i += 1) {         if (first[i] >= second[i]) {           return  NO n ;         }       }     } else if (first[0] > second[0]) {       for (int i = 0; i < n; i += 1) {         if (first[i] <= second[i]) {           return  NO n ;         }       }     } else {       return  NO n ;     }     return  YES n ;   }   int main() {     long int n;     cin >> n;     string s;     cin >> s;     vector<long> first, second;     for (int i = 0; i < n; i++) {       first.push_back(s[i] -  0 );     }     for (int i = n; i < 2 * n; i++) {       second.push_back(s[i] -  0 );     }     sort(first.begin(), first.end());     sort(second.begin(), second.end());     cerr << first << second;     cout << checkTicket(first, second);     return 0;   }   