#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;
}