#include <bits/stdc++.h>
using namespace std;
const double PI = 3.14159265358979;
const double PI2 = 6.28318530717958;
const double PId2 = 1.570796326794895;
template <typename T>
T sqr(T x) {
  return x * x;
}
template <typename T>
T gcd(T a, T b) {
  return (b ? gcd(b, a % b) : a);
}
long long pw(long long a, long long p, long long mod) {
  long long res = 1;
  while (p) {
    if (p & 1) {
      --p;
      res = (res * a) % mod;
    } else {
      p >>= 1;
      a = (a * a) % mod;
    }
  }
  return res;
}
inline vector<int> ReadVI(int count) {
  vector<int> array(count);
  for (int i = 0; i < count; i++) scanf("%d", &array[i]);
  return array;
}
inline vector<long long> ReadVlong(int count) {
  vector<long long> arrayname(count);
  for (int i = 0; i < count; i++) cin >> arrayname[i];
  return arrayname;
}
const int MOD = 65536;
const int MOD2 = 1073741824;
const int MAXVALUE = 200010;
int main() {
  int n;
  string s, g;
  cin >> n >> s >> g;
  n *= 2;
  int p1 = 0, p2 = 0, q = 0;
  for (int i = 0; i < n; i++) {
    if (s[i] == '1' && g[i] == '1')
      q++;
    else if (s[i] == '1')
      p1++;
    else if (g[i] == '1')
      p2++;
  }
  int s1 = q / 2 + q % 2, s2 = q / 2;
  if (q % 2 && p2) {
    p2--;
    s2++;
  }
  int t = min(p1, p2);
  s1 += t;
  s2 += t;
  p1 -= t;
  p2 -= t;
  if (p1 == 0)
    s2 += p2 / 2;
  else
    s1 += p1 / 2 + p1 % 2;
  if (s1 == s2) return cout << "Draw", 0;
  if (s1 < s2)
    cout << "Second";
  else
    cout << "First";
  return 0;
}
