#include #include #include #include #include #include #include #include #include using namespace std; namespace anagram { struct is_anagram { bool operator()(const string &a, const string &b) const { return is_permutation(begin(a), end(a), begin(b)); } }; struct unordered_hash { size_t operator()(const string &a) const { return accumulate(begin(a), end(a), 0); } }; using set = unordered_set; } int main() { string line; int p1 = 0, p2 = 0; while (getline(cin, line)) { istringstream is1{line}, is2{line}; set words{istream_iterator(is1), {}}; anagram::set awords{words.cbegin(), words.cend()}; size_t wcount = distance(istream_iterator(is2), {}); if (words.size() == wcount) p1++; if (awords.size() == wcount) p2++; } cout << p1 << endl << p2 << endl; }