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

int main() {
	std::string dna("ACTGCGACGGTACGCTTCGACGTAG");
	std::map< std::string, std::vector<int> > msvi;
	auto len = dna.size();
	for(auto i = 0; i + 3 <= len; ++i) {
	  for(auto j = 3; i + j < len; ++j) {
	    msvi[ dna.substr(i, j) ].push_back(i);
	  }
	}

    for(auto &it : msvi) {
    	cout << it.first << ':';
    	for(auto &n : it.second) cout << n << ' ';
    	cout << endl;
    }
	return 0;
}