#include <iostream>
#include <string>
using namespace std;
int main()
{
string tekst, text_do_sprawdzenia;
int ile_testow, dlugosc_tekstu, dlugosc_sprawdzanego_tekstu;
int licznik=0;
int licznik_anagramow=0;
cin>>tekst>>ile_testow; //pobranie wyrazu do którego będą szykane algorytmy oraz ilości wyrazów które bedą sprawdzane
dlugosc_tekstu=tekst.length(); //wyznaczenie długośći wyrazu pobranego
for(int i=0; i<ile_testow; i++) //petla wykonująca się tyle razy ile jest do sprawdzenia wyrazów
{
cin>>text_do_sprawdzenia; //pobranie wyrazu do sprawdzenia
dlugosc_sprawdzanego_tekstu=text_do_sprawdzenia.length(); //ustalenie powtorzen petli
for(int j=0; j<dlugosc_tekstu; j++)
{
if(dlugosc_tekstu!=dlugosc_sprawdzanego_tekstu) //jezeli dlugosc tekstu jest rozna to nie moze byc anagramem
{
continue;
}
else
{
for(int k=0; k<dlugosc_sprawdzanego_tekstu; k++)
{
if(tekst[j]==text_do_sprawdzenia[k]) //jezeli w sprawdzanym wyrazie jest litera z glownego tekstu to daj dalej
{
licznik++;
if(licznik==dlugosc_tekstu) //jezeli licznik zliczyl tyle samo poprawnych liter ile ma glowny tekst to dodaj 1 do licznika anagramow
{
licznik_anagramow++;
}
text_do_sprawdzenia.erase(k,1);
}
}
}
}
licznik=0;
}
cout<<licznik_anagramow<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkKewogICAgc3RyaW5nIHRla3N0LCB0ZXh0X2RvX3NwcmF3ZHplbmlhOwogICAgaW50IGlsZV90ZXN0b3csIGRsdWdvc2NfdGVrc3R1LCBkbHVnb3NjX3NwcmF3ZHphbmVnb190ZWtzdHU7CiAgICBpbnQgbGljem5paz0wOwogICAgaW50IGxpY3puaWtfYW5hZ3JhbW93PTA7CiAgICBjaW4+PnRla3N0Pj5pbGVfdGVzdG93OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3BvYnJhbmllIHd5cmF6dSBkbyBrdMOzcmVnbyBixJlkxIUgc3p5a2FuZSBhbGdvcnl0bXkgb3JheiBpbG/Fm2NpIHd5cmF6w7N3IGt0w7NyZSBiZWTEhSBzcHJhd2R6YW5lCiAgICBkbHVnb3NjX3Rla3N0dT10ZWtzdC5sZW5ndGgoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3d5em5hY3plbmllIGTFgnVnb8WbxIdpIHd5cmF6dSBwb2JyYW5lZ28KICAgIGZvcihpbnQgaT0wOyBpPGlsZV90ZXN0b3c7IGkrKykgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vcGV0bGEgd3lrb251asSFY2Egc2nEmSB0eWxlIHJhenkgaWxlIGplc3QgZG8gc3ByYXdkemVuaWEgd3lyYXrDs3cKICAgIHsKICAgICAgICBjaW4+PnRleHRfZG9fc3ByYXdkemVuaWE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9wb2JyYW5pZSB3eXJhenUgZG8gc3ByYXdkemVuaWEKCiAgICAgICAgZGx1Z29zY19zcHJhd2R6YW5lZ29fdGVrc3R1PXRleHRfZG9fc3ByYXdkemVuaWEubGVuZ3RoKCk7ICAgICAgICAgICAgICAgIC8vdXN0YWxlbmllIHBvd3RvcnplbiBwZXRsaQogICAgICAgIGZvcihpbnQgaj0wOyBqPGRsdWdvc2NfdGVrc3R1OyBqKyspCiAgICAgICAgewogICAgICAgICAgICBpZihkbHVnb3NjX3Rla3N0dSE9ZGx1Z29zY19zcHJhd2R6YW5lZ29fdGVrc3R1KSAgICAgICAgICAgICAgICAgICAgICAvL2plemVsaSBkbHVnb3NjIHRla3N0dSBqZXN0IHJvem5hIHRvIG5pZSBtb3plIGJ5YyBhbmFncmFtZW0KICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3IoaW50IGs9MDsgazxkbHVnb3NjX3NwcmF3ZHphbmVnb190ZWtzdHU7IGsrKykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZih0ZWtzdFtqXT09dGV4dF9kb19zcHJhd2R6ZW5pYVtrXSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9qZXplbGkgdyBzcHJhd2R6YW55bSB3eXJhemllIGplc3QgbGl0ZXJhIHogZ2xvd25lZ28gdGVrc3R1IHRvIGRhaiBkYWxlagogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgbGljem5paysrOwoKICAgICAgICAgICAgICAgICAgICAgICAgaWYobGljem5paz09ZGx1Z29zY190ZWtzdHUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vamV6ZWxpIGxpY3puaWsgemxpY3p5bCB0eWxlIHNhbW8gcG9wcmF3bnljaCBsaXRlciBpbGUgbWEgZ2xvd255IHRla3N0IHRvIGRvZGFqIDEgZG8gbGljem5pa2EgYW5hZ3JhbW93CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpY3puaWtfYW5hZ3JhbW93Kys7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgdGV4dF9kb19zcHJhd2R6ZW5pYS5lcmFzZShrLDEpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICB9CgogICAgICAgIH0KICAgICAgICBsaWN6bmlrPTA7CgoKICAgIH0KICAgIGNvdXQ8PGxpY3puaWtfYW5hZ3JhbW93PDxlbmRsOwoKICAgIHJldHVybiAwOwp9Cg==