#include <bits/stdc++.h>
using namespace std;
string tostring(int a) {
  ostringstream temp;
  temp << a;
  return temp.str();
}
int gcd(int a, int b) {
  if (a == 0)
    return b;
  else
    return gcd(b % a, a);
}
bool isPrime(unsigned long long n) {
  if (n <= 3) {
    return n > 1;
  }
  if (n % 2 == 0 || n % 3 == 0) {
    return false;
  }
  for (unsigned long long i = 5; i * i <= n; i += 6) {
    if (n % i == 0 || n % (i + 2) == 0) {
      return false;
    }
  }
  return true;
}
long long lcm(long long a, long long b) { return a * b / gcd(a, b); }
void multiply(long long F[2][2], long long M[2][2]);
void power(long long F[2][2], long long n);
long long fib(long long n) {
  long long F[2][2] = {{1, 1}, {1, 0}};
  if (n == 0) return 0;
  power(F, n - 1);
  return F[0][0];
}
void power(long long F[2][2], long long n) {
  if (n == 0 || n == 1) return;
  long long M[2][2] = {{1, 1}, {1, 0}};
  power(F, n / 2);
  multiply(F, F);
  if (n % 2 != 0) multiply(F, M);
}
void multiply(long long F[2][2], long long M[2][2]) {
  long long x = F[0][0] * M[0][0] + F[0][1] * M[1][0];
  long long y = F[0][0] * M[0][1] + F[0][1] * M[1][1];
  long long z = F[1][0] * M[0][0] + F[1][1] * M[1][0];
  long long w = F[1][0] * M[0][1] + F[1][1] * M[1][1];
  F[0][0] = x;
  F[0][1] = y;
  F[1][0] = z;
  F[1][1] = w;
}
long long sumOfDigits(long long in) {
  long long sum = 0;
  while (in > 0) {
    sum += in % 10;
    in /= 10;
  }
  return sum;
}
long long fact(long long in) {
  long long res = 1, mult = 2;
  while (mult < in + 1) {
    res *= mult;
    mult++;
  }
  return res;
}
struct str {
  int x, y, z;
  bool operator<(const str rhs) const {
    if (x < rhs.x) {
      return true;
    } else if (x == rhs.x) {
      if (y < rhs.y) {
        return true;
      } else if (y == rhs.y) {
        return z < rhs.z;
      }
    }
    return false;
  }
} struct1[100];
int n, m, r;
char alph[26] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
                 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r',
                 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
multiset<string> ms;
vector<char> vec;
pair<long long, long long> p[170000];
queue<int> que;
map<int, int> mp;
set<string> st;
char t[107][107];
int main() {
  cin >> n >> m;
  int w = n - m, e = 0, o = 0, i = 0;
  long long sum = 0;
  int* d = new int[n];
  for (int i = 0; i < n; i++) {
    cin >> d[i];
    if (d[i] % 2 == 0) {
      e++;
    } else {
      o++;
    }
    sum += d[i];
  }
again:
  if (w - i == 0) {
    if (sum % 2 == 0) {
      cout << "Daenerys" << endl;
    } else {
      cout << "Stannis" << endl;
    }
    return 0;
  }
  if (o == 0) {
    cout << "Daenerys" << endl;
  } else if (e == 0) {
    if (sum % 2 == 0) {
      if ((w - i) % 2 == 0) {
        cout << "Daenerys" << endl;
      } else {
        cout << "Stannis" << endl;
      }
    } else {
      if ((w - i) % 2 == 1) {
        cout << "Daenerys" << endl;
      } else {
        cout << "Stannis" << endl;
      }
    }
  } else {
    if (i % 2 == 0) {
      if (sum % 2 == 0 && i == w - 1) {
        o--;
        sum--;
      } else {
        e--;
      }
    } else {
      if (sum % 2 == 0 && i == w - 1) {
        e--;
      } else {
        o--;
        sum--;
      }
    }
    i++;
    goto again;
  }
  return 0;
}
