#include <bits/stdc++.h>
using namespace std;
template <class T>
int size(const T &x) {
  return x.size();
}
const int INF = ~(1 << 31);
typedef long int li;
typedef long long int lli;
template <typename T>
std::string numtostr(T Number) {
  std::ostringstream ss;
  ss << Number;
  return ss.str();
}
int gcd(int a, int b) {
  if (b == 0)
    return a;
  else
    return gcd(b, a % b);
}
const double EPS = 1e-9;
const double pi = acos(-1);
template <class T>
T smod(T a, T b) {
  return (a % b + b) % b;
}
template <typename T, typename U>
inline void amin(T &x, U y) {
  if (y < x) x = y;
}
template <typename T, typename U>
inline void amax(T &x, U y) {
  if (x < y) x = y;
}
int main() {
  cin.sync_with_stdio(0);
  cin.tie(0);
  string str;
  cin >> str;
  int n = str.length();
  string ar[] = {"Danil", "Olya", "Slava", "Ann", "Nikita"};
  vector<int> f(5, 0);
  for (__typeof(0) i = (0); i < (5); ++i) {
    std::size_t found = str.find(ar[i]);
    if (found < n) f[i]++;
    if (str.find(ar[i], found + 1) < n) f[i]++;
  }
  int ans = 0;
  for (__typeof(0) i = (0); i < (5); ++i) ans += f[i];
  if (ans != 1)
    cout << "NO\n";
  else
    cout << "YES\n";
  return 0;
}
