#include <bits/stdc++.h>
using namespace std;
const int N = 2000005;
const long long MOD = 1000000007;
struct node {
  char a, b;
  int k;
} q1[N], q2[N];
bool visited[N];
bool cmp1(node x, node y) {
  if (x.a == y.a) return x.b > y.b;
  return x.a > y.a;
}
bool cmp2(node x, node y) {
  if (x.b == y.b) return x.a > y.a;
  return x.b > y.b;
}
int main() {
  int n;
  while (cin >> n) {
    for (int i = 0; i < 2 * n; ++i) {
      cin >> q1[i].a;
      q2[i].a = q1[i].a;
      q1[i].k = i;
      q2[i].k = i;
    }
    for (int i = 0; i < 2 * n; ++i) {
      cin >> q1[i].b;
      q2[i].b = q1[i].b;
    }
    sort(q1, q1 + 2 * n, cmp1);
    sort(q2, q2 + 2 * n, cmp2);
    int A = 0, B = 0;
    int l = 0, r = 0;
    memset(visited, false, sizeof(visited));
    while (l < 2 * n && r < 2 * n) {
      while (l < 2 * n && visited[q1[l].k] == true) {
        ++l;
      }
      if (l < 2 * n) {
        A += (q1[l].a == '1') ? 1 : 0;
        visited[q1[l].k] = true;
      }
      while (r < 2 * n && visited[q2[r].k] == true) {
        ++r;
      }
      if (r < 2 * n) {
        B += (q2[r].b == '1') ? 1 : 0;
        visited[q2[r].k] = true;
      }
    }
    if (A > B) {
      cout << "First" << endl;
    }
    if (B > A) {
      cout << "Second" << endl;
    }
    if (A == B) {
      cout << "Draw" << endl;
    }
  }
  return 0;
}
