#include<stdcpp.h>
using namespace std;

class Solution{
    public:
    bool closeStrings(string word1, string word2){
        if(word1.length()!=word2.length()) return false;
        const int char_nums = 26;
        int word1_chars[char_nums] = {};
        int word2_chars[char_nums] = {};
        for(int i = 0 ; i < word1.length();i++){
            int word1_char = word1[i] - 'a';
            int word2_char = word2[i] - 'a';
            word1_chars[word1_char]++;
            word2_chars[word2_char]++;
        }
        for(int i = 0 ; i <char_nums ; i++){
            if((word1_chars[i]&&!word2_chars[i])||(!word1_chars[i]&&word2_chars[i]))
                return false;
        }
        sort(word1_chars,word1_chars + char_nums);
        sort(word2_chars,word2_chars + char_nums);
        for(int i = 0 ; i < char_nums ; i++){
            if(word1_chars[i] != word2_chars[i])
                return false;
        }
        for(int i = 0 ; i < char_nums ; i++){
            cout<<word1_chars[i]<<' '<<word2_chars[i]<<endl;
            
        }
        return true;
    }
};

int main(){
    Solution sol;
    string word1 = "abc";
    string word2 = "bca";
    cout<<sol.closeStrings(word1,word2)<<endl;
    word1 = "a";
    word2 = "aa";
    cout<<sol.closeStrings(word1,word2)<<endl;
    word1 = "cabbba";
    word2 = "abbccc";
    cout<<sol.closeStrings(word1,word2)<<endl;
    word1 = "uau";
    word2 = "ssx";
    cout<<sol.closeStrings(word1,word2)<<endl;
    return 0;
}