Problem: A word or a sentence in some language is called a pangram if all the characters of the alphabet of this language appear in it at least once. Pangrams are often used to demonstrate fonts in printing or test the output devices.

You are given a string consisting of lowercase and uppercase Latin letters. Check whether this string is a pangram. We say that the string contains a letter of the Latin alphabet if this letter occurs in the string in uppercase or lowercase.

Input

The first line contains a single integer n (1 ≤ n ≤ 100) — the number of characters in the string.

The second line contains the string. The string consists only of uppercase and lowercase Latin letters.

Output

Output "YES", if the string is a pangram and "NO" otherwise.

Examples

Input

12
toosmallword


Output

NO


Input

35
TheQuickBrownFoxJumpsOverTheLazyDog


Output

YES

Solution (in CPP):

Solution:
#include <bits/stdc++.h>
int caseno = 1;
using namespace std;
typedef unsigned long long ULL;
typedef unsigned long long uint64;
typedef long long LL;
typedef long long int64;
template <class T>
inline void checkmax(T &a, T b) {
  if (b > a) a = b;
}
template <class T>
inline void checkmin(T &a, T b) {
  if (b < a) a = b;
}
template <class T>
inline T MAX(T a, T b) {
  return (a > b) ? a : b;
}
template <class T>
inline T MIN(T a, T b) {
  return (a < b) ? a : b;
}
template <class T>
inline T sqr(T x) {
  return x * x;
}
template <class T>
inline T fABS(T a) {
  return a < 0 ? a * (-1) : a;
}
template <class T>
inline void SWAP(T &a, T &b) {
  T t = a;
  a = b;
  b = t;
}
inline LL POW(LL base, LL power) {
  LL I, res = base;
  if (power == 0) return 1;
  for (I = 0; I < power - 1; I++) res *= base;
  return res;
}
bool isUpperCase(char c) { return c >= 'A' && c <= 'Z'; }
bool isLowerCase(char c) { return c >= 'a' && c <= 'z'; }
bool isVowel(char c) {
  return (c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u' ||
          c == 'A' || c == 'E' || c == 'I' || c == 'O' || c == 'U');
}
bool isLetter(char c) { return c >= 'A' && c <= 'Z' || c >= 'a' && c <= 'z'; }
bool isDigit(char c) { return c >= '0' && c <= '9'; }
char toLowerCase(char c) { return (isUpperCase(c)) ? (c + 32) : c; }
char toUpperCase(char c) { return (isLowerCase(c)) ? (c - 32) : c; }
int toInt(string s) {
  int r = 0;
  istringstream sin(s);
  sin >> r;
  return r;
}
double toDouble(string s) {
  double r = 0;
  istringstream sin(s);
  sin >> r;
  return r;
}
string toString(int n) {
  string s;
  stringstream convert;
  convert << n;
  s = convert.str();
  return s;
}
const double PI = 2 * acos(0.0);
const double EPS = 1e-11;
const int SIZE = 1e6;
string S;
int f[30];
int main() {
  std::ios_base::sync_with_stdio(0);
  int tcases, I, J, K, N, n, m, cnt = 0, len;
  cin >> len >> S;
  for (I = 0; I < len; I++) {
    S[I] = toLowerCase(S[I]);
    f[S[I] - 'a']++;
  }
  for (I = 0; I < 26; I++)
    if (f[I] == 0) {
      cout << "NO\n";
      return 0;
    }
  cout << "YES\n";
  return 0;
}