#include <bits/stdc++.h>
using namespace std;
const int sz = 1500000;
const long long MAX = 10000000000000000;
template <typename T>
T abs(T a) {
  return a < 0 ? -a : a;
}
const long long MOD = 1e9 + 7;
const long long MASK = 1099511627776LL;
int napr[4][2] = {{0, 1}, {1, 0}, {-1, 0}, {0, -1}};
const int PRIME = 4999999;
vector<vector<long long> > c, f;
vector<int> d;
vector<int> flag;
vector<int> ptr;
int n;
set<int> dist;
vector<int> a;
vector<vector<int> > graph;
int main() {
  string a, b;
  int n;
  cin >> n;
  cin >> a >> b;
  vector<pair<int, int> > p1(2 * n), p2(2 * n);
  vector<int> flag(2 * n, 0);
  for (long long i = 0; i < 2 * n; i++) {
    if (a[i] == '1' && b[i] == '1') {
      p1[i] = make_pair(0, i);
    } else if (a[i] == '1') {
      p1[i] = make_pair(1, i);
    } else if (a[i] == '0' && b[i] == '1') {
      p1[i] = make_pair(2, i);
    } else {
      p1[i] = make_pair(3, i);
    }
  }
  for (long long i = 0; i < 2 * n; i++) {
    if (a[i] == '1' && b[i] == '1') {
      p2[i] = make_pair(0, i);
    } else if (b[i] == '1') {
      p2[i] = make_pair(1, i);
    } else if (b[i] == '0' && a[i] == '1') {
      p2[i] = make_pair(2, i);
    } else {
      p2[i] = make_pair(3, i);
    }
  }
  sort(p1.begin(), p1.end());
  sort(p2.begin(), p2.end());
  int l = 0, r = 0;
  int a1 = 0, a2 = 0;
  bool fl = true;
  int steps = 0;
  while (steps < 2 * n) {
    if (fl) {
      while (flag[p1[l].second] == 1) l++;
      if (a[p1[l].second] == '1') {
        a1++;
      }
      if (l >= 2 * n) cout << "HER" << endl;
      flag[p1[l++].second] = 1;
    } else {
      while (flag[p2[r].second] == 1) r++;
      if (b[p2[r].second] == '1') {
        a2++;
      }
      if (r >= 2 * n) cout << "rHER" << endl;
      flag[p2[r++].second] = 1;
    }
    fl = !fl;
    steps++;
  }
  if (a1 > a2) {
    cout << "First" << endl;
  } else if (a1 == a2) {
    cout << "Draw" << endl;
  } else {
    cout << "Second" << endl;
  }
  return 0;
}
