Problem:
Score : 200 points

Problem Statement

Takahashi is competing in a sumo tournament.
The tournament lasts for 15 days, during which he performs in one match per day.
If he wins 8 or more matches, he can also participate in the next tournament.

The matches for the first k days have finished.
You are given the results of Takahashi's matches as a string S consisting of o and x.
If the i-th character in S is o, it means that Takahashi won the match on the i-th day; if that character is x, it means that Takahashi lost the match on the i-th day.

Print YES if there is a possibility that Takahashi can participate in the next tournament, and print NO if there is no such possibility.

Constraints

1 \leq k \leq 15

S is a string of length k consisting of o and x.

Input

Input is given from Standard Input in the following format:

S

Output

Print YES if there is a possibility that Takahashi can participate in the next tournament, and print NO otherwise.

Sample Input 1

oxoxoxoxoxoxox

Sample Output 1

YES

Takahashi has 7 wins and 7 losses before the last match. If he wins that match, he will have 8 wins.

Sample Input 2

xxxxxxxx

Sample Output 2

NO

Solution in C (Clang 3.8.0) (judge verdict: Accepted)

#include<stdio.h>
#include<math.h>
#include<string.h>

#define FR(N) for(int i = 0;i < N;i++)
#define PR(N) printf("%d\n",N)
#define MJ(S) printf("%s\n",S)

int min(int a,int b){
  if(a < b)return a;
  return b;
}
int max(int a,int b){
  if(a > b)return a;
  return b;
}
int z(int a){
  if(a < 0)return -a;
  return a;
}
int yu(int a,int b){
  if(a < b){
    int tmp = a;
    a = b;
    b = tmp;
  }
  int r = a % b;
  while(r!=0){
    a = b;
    b = r;
    r = a % b;
  }
  return b;
}
void swap(int *x,int *y) {
  int temp = *x;
  *x = *y;
  *y = temp;
}
int partition(int array[],int left,int right) {
  int i,j,pivot;
  i = left;
  j = right + 1;
  pivot = left;
  do{
    do{i++;}while(array[i] < array[pivot]);
    do{j--;}while(array[pivot] < array[j]);
    if(i < j)swap(&array[i],&array[j]);
  }while(i < j);
  swap(&array[pivot],&array[j]);
  return j;
}
void q_sort(int array[],int left,int right) {
  int pivot;
  if(left < right){
    pivot = partition(array,left,right);
    q_sort(array,left,pivot - 1);
    q_sort(array,pivot + 1,right);
  }
}

int main(void){
  char s[20];
  scanf("%s",&s);
  int l = strlen(s),cnt = 0;
  FR(l){
    if(s[i] == 'x')cnt++;
  }
  if(cnt > 7){
    MJ("NO");
  }else{
    MJ("YES");
  }
  return 0;
}