#include <iostream>
#include <string>
#include <vector>
using namespace std;

void combinations(const string& s, vector<int>& pos, int n) {
    if (n == s.size()) {
        for (int i = 0 ; i != n ; i++) {
            cout << s[pos[i]];
        }
        cout << endl;
        return;
    }
    for (int i = 0 ; i != s.size(); i++) {
        pos[n] = i;
        combinations(s, pos, n+1);
    }
}

int main() {
	string s("ABC");
	vector<int> pos(s.size(), 0);
    combinations(s, pos, 0);
	return 0;
}