#include <stdio.h>   // Nhập, xuất
#include <string.h>  // Làm việc với xâu ký tự (string)
#include <ctype.h>   // Làm việc với ký tự (char)
#include <stdbool.h> // Thêm kiểu logic (bool)
#include <stdlib.h>  // Cấp phát mảng động

// Hàm biến một ký tự chữ hoa -> chữ thường
// Kỹ thuật: dùng bảng mã ASCII
char lowerCase(char c)
{
  return (char)c + 32;
}

// Hàm kiểm tra panagram
/** Các bước thực hiện
 * 1. Tạo một mảng kiểm tra xem các chữ cái đã xuất hiện trong câu chưa
 *      (biết rằng, chỉ số (index) của mảng này tương ứng với các ký tự trong bảng mã ASCII)
 * 2. Xét các ký tự trong câu
 *    - Nếu là chữ hoa, biến thành chữ thường
 *    - Đánh dấu vào mảng kiểm tra, tại chỉ số tương ứng với ký tự trong câu là true
 *          (đánh dẫu ký tự này có xuất hiện trong câu)
 * 3. Xét lại mảng kiểm tra, tại chỉ số của các chữ cái thường (từ 97 -> 122 theo bảng ASCII)
 *    - Nếu phát hiện tại chỉ số nào có giá trị là false -> trả về kết quả sai -> kết thúc bài toán
 * 4. Sau khi bước 3 diễn ra suôn sẻ và không phải kết thúc giữa chừng khi đang xét
 *    => Lập tức kết luận kết quả là đúng -> kết thúc bài toán
 */
bool isPanagram(char *str)
{
  // Bước 1
  bool *checkArray = (bool *)calloc(123, sizeof(bool)); // Cấp phát mảng động kiểu bool
                                                        // gồm 123 phần tử
                                                        // và mỗi phần tử đều có giá trị mặc định là false

  // Bước 2
  for (int i = 0; i < strlen(str); i++)
  {
    if (isupper(str[i])) // Ký tự đang xét có là chữ hoa ??
      str[i] = lowerCase(str[i]);

    checkArray[str[i]] = true;
  }

  for (int i = 97; i <= 122; i++)
  {
    if (!checkArray[i]) // Nếu tại chỉ số nào đó có giá trị là false
                        // cách viết điều kiện trong if tương đương với: check[i] == false
    {
      free(checkArray); // Giải phóng bộ nhớ cấp phát từ hàm calloc hoặc malloc ở trên (BẮT BUỘC)
      return false;
    }
  }

  free(checkArray);
  return true;
}

int main()
{
  char sentence[10000];
  fgets(sentence, sizeof(sentence), stdin);

  printf(isPanagram(sentence) ? "Yes" : "No"); // In ra chữ Yes hoặc No dựa trên
                                               // xâu str có phải là panagram

  /**
   * Dòng 63 tương đương với:
   *
   * if(isPanagram(sentence) == true) {
   *     printf("Yes");
   * } else {
   *     printf("No");
   * }
   */
}