#include <string>
#include <vector>
#include <queue>
#include <algorithm>

using namespace std;

int solution(string skill, vector<string> skill_trees) {
    int answer = 0;
    int len = skill_trees.size();
	string str;
	int flag = 1;
	
    for(int i = 0; i < len; i++){
		queue<char> q;
		str = skill_trees.at(i);
		int len2 = str.size();
		
		//스킬 트리에서 선행스킬만 순서대로 추출
		for (int j = 0; j<len2; j++){
			auto it = find(skill.begin(), skill.end(), str[j]);
			if(it != skill.end()){
				q.push(str[j]);
			}
		}
		int k = 0;
		
		while(!q.empty()){
			if(skill[k] == q.front()){
				q.pop();
				k++;
				flag = 1;
			}
			else{
				flag = -1;
				break;
			}
		}
		
		if(flag == 1){
			answer++;
		}
		else{
			flag = 1;
		}
        
    }
    
    return answer;
}