#include <iostream>
#include <cstring>
using namespace std;
const int MAX_SIZE = 100000;
const int LETTER = 26;
void calculateFrequency(const char *word, int frq[]) {
for (int i = 0; i < LETTER; ++i) {
frq[i] = 0;
}
for (int i = 0; word[i] != '\0'; ++i) {
++frq[word[i] - 'a'];
}
}
bool areAnagrams(const int frq1[], const char *word2) {
int frq2[LETTER] = {0};
calculateFrequency(word2, frq2);
for (int i = 0; i < LETTER; ++i) {
if (frq1[i] != frq2[i]) {
return false;
}
}
return true;
}
int countAnagrams(const int frq1[], const char *currentWord) {
if (areAnagrams(frq1, currentWord)) {
return 1;
}
return 0;
}
int processWords(int wordCount, const int frq1[]) {
int anagramCount = 0;
char currentWord[MAX_SIZE + 1];
for (int i = 0; i < wordCount; ++i) {
cin >> currentWord;
anagramCount += countAnagrams(frq1, currentWord);
}
return anagramCount;
}
int main() {
int wordCount, frq1[LETTER];
cin >> wordCount;
char referenceWord[MAX_SIZE + 1];
cin >> referenceWord;
calculateFrequency(referenceWord, frq1);
int anagramCount = processWords(wordCount, frq1);
cout << anagramCount;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBNQVhfU0laRSA9IDEwMDAwMDsKY29uc3QgaW50IExFVFRFUiA9IDI2OwoKdm9pZCBjYWxjdWxhdGVGcmVxdWVuY3koY29uc3QgY2hhciAqd29yZCwgaW50IGZycVtdKSB7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IExFVFRFUjsgKytpKSB7CiAgICAgICAgZnJxW2ldID0gMDsKICAgIH0KICAgIGZvciAoaW50IGkgPSAwOyB3b3JkW2ldICE9ICdcMCc7ICsraSkgewogICAgICAgICsrZnJxW3dvcmRbaV0gLSAnYSddOwogICAgfQp9Cgpib29sIGFyZUFuYWdyYW1zKGNvbnN0IGludCBmcnExW10sIGNvbnN0IGNoYXIgKndvcmQyKSB7CiAgICBpbnQgZnJxMltMRVRURVJdID0gezB9OwogICAgY2FsY3VsYXRlRnJlcXVlbmN5KHdvcmQyLCBmcnEyKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTEVUVEVSOyArK2kpIHsKICAgICAgICBpZiAoZnJxMVtpXSAhPSBmcnEyW2ldKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gdHJ1ZTsKfQoKaW50IGNvdW50QW5hZ3JhbXMoY29uc3QgaW50IGZycTFbXSwgY29uc3QgY2hhciAqY3VycmVudFdvcmQpIHsKICAgIGlmIChhcmVBbmFncmFtcyhmcnExLCBjdXJyZW50V29yZCkpIHsKICAgICAgICByZXR1cm4gMTsKICAgIH0KICAgIHJldHVybiAwOwp9CgppbnQgcHJvY2Vzc1dvcmRzKGludCB3b3JkQ291bnQsIGNvbnN0IGludCBmcnExW10pIHsKICAgIGludCBhbmFncmFtQ291bnQgPSAwOwogICAgY2hhciBjdXJyZW50V29yZFtNQVhfU0laRSArIDFdOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCB3b3JkQ291bnQ7ICsraSkgewogICAgICAgIGNpbiA+PiBjdXJyZW50V29yZDsKICAgICAgICBhbmFncmFtQ291bnQgKz0gY291bnRBbmFncmFtcyhmcnExLCBjdXJyZW50V29yZCk7CiAgICB9CiAgICByZXR1cm4gYW5hZ3JhbUNvdW50Owp9CgppbnQgbWFpbigpIHsKICAgIGludCB3b3JkQ291bnQsIGZycTFbTEVUVEVSXTsKICAgIGNpbiA+PiB3b3JkQ291bnQ7CiAgICBjaGFyIHJlZmVyZW5jZVdvcmRbTUFYX1NJWkUgKyAxXTsKICAgIGNpbiA+PiByZWZlcmVuY2VXb3JkOwogICAgY2FsY3VsYXRlRnJlcXVlbmN5KHJlZmVyZW5jZVdvcmQsIGZycTEpOwogICAgaW50IGFuYWdyYW1Db3VudCA9IHByb2Nlc3NXb3Jkcyh3b3JkQ291bnQsIGZycTEpOwogICAgY291dCA8PCBhbmFncmFtQ291bnQ7CiAgICByZXR1cm4gMDsKfQ==