#include <bits/stdc++.h>
using namespace std;
long long n, m = 0;
bool test = false, test1 = false;
;
long long const N = 1e5 + 7;
long long const oo = 1e5 + 7;
vector<long long> v, v2;
vector<pair<long long, long long> > vv;
map<long long, long long> my;
map<long long, long long> my1;
priority_queue<long long> q;
long long dx[4] = {0, 1, 0, -1};
long long dy[4] = {1, 0, -1, 0};
bool in_da_prison(long long x, long long y) {
  return (x < 9 && x >= 0 && y < 9 && y >= 0);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long i = 0, j = 0, a = 0, b = 0, c = 0, d = 1e10, k, x, y;
  string s1, s2, s3, s4, s5;
  cin >> s5;
  std::size_t found = s5.find("Danil");
  if (found != std::string::npos) j++;
  found = s5.find("Danil", found + 1);
  if (found != std::string::npos) j++;
  found = s5.find("Olya");
  if (found != std::string::npos) j++;
  found = s5.find("Olya", found + 1);
  if (found != std::string::npos) j++;
  found = s5.find("Slava");
  if (found != std::string::npos) j++;
  found = s5.find("Slava", found + 1);
  if (found != std::string::npos) j++;
  found = s5.find("Ann");
  if (found != std::string::npos) j++;
  found = s5.find("Ann", found + 1);
  if (found != std::string::npos) j++;
  found = s5.find("Nikita");
  if (found != std::string::npos) j++;
  found = s5.find("Nikita", found + 1);
  if (found != std::string::npos) j++;
  if (j == 1)
    cout << "YES";
  else
    cout << "NO";
  return 0;
}
