3MS EASY TO UNDERSTAND RECURSION SOLUTION
\t\n\tclass Solution {\npublic:\n    string ans = "";\n    void solve(int a,int b){\n        if(a<0 || b<0 || (a==0 && b==0))return ;\n        if(a-b>=2){\n    
\t```\n\tclass Solution {\npublic:\n    string ans = "";\n    void solve(int a,int b){\n        if(a<0 || b<0 || (a==0 && b==0))return ;\n        if(a-b>=2){\n            if(b>0){\n            ans = ans + "aab";\n            solve(a-2,b-1);}else{\n                ans = ans + "aa";\n            solve(a-2,b);\n            }\n        }else if(b-a>=2){\n            \n            if(a>0){ans = ans + "bba";\n            solve(a-1,b-2);}else{\n                ans = ans + "bb";\n            solve(a,b-2);\n            }\n        }else if(a>b){\n            ans = ans + \'a\';\n            solve(a-1,b);\n        }else if(a<b){\n            ans = ans + \'b\';\n            solve(a,b-1);\n        }else{\n            ans = ans + "ab";\n            solve(a-1,b-1);\n        }\n    }\n    string strWithout3a3b(int a, int b) {\n        ans = "";\n        solve(a,b);\n        return ans;\n    }\n};\n```
['Greedy', 'Recursion', 'C', 'C++']