#include <bits/stdc++.h>
using namespace std;
const int N = 2000500;
int n;
char ss1[N], ss2[N];
void del(set<int> &s, int x) {
  set<int>::iterator it = s.find(x);
  if (it != s.end()) {
    s.erase(it);
  }
}
int main() {
  scanf("%d\n", &n);
  gets(ss1 + 1);
  gets(ss2 + 1);
  set<int> s1, s2, dual;
  for (int i = 1; i <= n + n; i++) {
    if (ss1[i] == ss2[i] && ss1[i] == '1') {
      dual.insert(i);
    }
    if (ss1[i] == '1') {
      s1.insert(i);
    }
    if (ss2[i] == '1') {
      s2.insert(i);
    }
  }
  int c1, c2;
  c1 = c2 = 0;
  for (int i = 0; i < n; i++) {
    if (dual.size() > 0) {
      c1++;
      int val = *dual.begin();
      del(dual, val);
      del(s1, val);
      del(s2, val);
    } else {
      if ((int)s1.size() > 0) {
        int val = *s1.begin();
        c1++;
        del(dual, val);
        del(s1, val);
        del(s2, val);
      } else if ((int)s2.size() > 0) {
        int val = *s2.begin();
        del(dual, val);
        del(s1, val);
        del(s2, val);
      }
    }
    if (dual.size() > 0) {
      c2++;
      int val = *dual.begin();
      del(dual, val);
      del(s1, val);
      del(s2, val);
    } else {
      if ((int)s2.size() > 0) {
        int val = *s2.begin();
        c2++;
        del(dual, val);
        del(s1, val);
        del(s2, val);
      } else if ((int)s1.size() > 0) {
        int val = *s1.begin();
        del(dual, val);
        del(s1, val);
        del(s2, val);
      }
    }
  }
  if (c1 > c2)
    puts("First");
  else if (c2 > c1)
    puts("Second");
  else
    puts("Draw");
  return 0;
}
