/*
	© MATTO MATTI 2016
	http://mattomatti.com/pl/a78
	napisane przy użyciu Visual Studio Community 2015
	2016-07-26 v 1.0
*/

#include <iostream>

using namespace std;

int numLength(int a) {
	int length = 0;
	do {
		a /= 10;
		length++;
	} while(a > 0);
	return length;
}

void writeNum(int a, int pos){
	for(int i = 0; i < pos - numLength(a); i++)
		cout << "0";
	cout << a;
}

int liczbaWstecz(int a, int pos){
	int aWstecz = 0;
	for(int i = 0; i < pos; i++){
		aWstecz *= 10;
		aWstecz += a % 10;
		a /= 10;
	}
	return aWstecz;
}

void godzinyAnielskie (int maxGodzina = 24, int maxMinuta = 60) {
	int dlGodzina = numLength(maxGodzina);
	if(dlGodzina != numLength(maxMinuta)) {
		cout << "Niepoprawne argumenty";
		return;
	}
	for(int h = 0; h < maxGodzina; h++){
		int m = h;
		if(m >= 0 && m < maxMinuta){
			writeNum(h, dlGodzina);
			cout << ":";
			writeNum(m, dlGodzina);
			cout << ", ";
		}
		int modwr = liczbaWstecz(m, dlGodzina);
		if(modwr != m && modwr >= 0 && modwr < maxMinuta){
			writeNum(h, dlGodzina);
			cout << ":";
			writeNum(modwr, dlGodzina);
			cout << ", ";
		}
	}
}

int main () {
	godzinyAnielskie(16, 16);
	system("pause");
	return 0;
}