#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define X first #define Y second #define pb push_back #define bit(x) (1 << (x)) #define bnum(x) (__builtin_popcount(x)) #define all(x) (x).begin(), (x).end() #define mset0(x) memset((x), 0, sizeof((x))) #define mset1(x) memset((x), -1, sizeof((x))) #define LET(x,a) __typeof(a) x(a) #define REP(v,it) for( LET(it,v.begin()) ; it != v.end() ; it++) #define sz(x) ((int)(x.size())) #define PQ priority_queue #define sqr(x) ((x) * (x)) using namespace std; typedef long long LL; typedef pair pii; typedef vector vi; typedef vector vpii; template inline void chkmin(T &a, T b) { if (b < a) a = b; } template inline void chkmax(T &a, T b) { if (a < b) a = b; } const int MX = 2200000; vi con[MX]; int main() { int i; int D = 12000; for (i = 0; i < 43200; i += 10) { int tp = i; int s, m, h; s = tp % 60, tp = tp / 60; m = tp % 60, tp = tp / 60; h = tp; tp = abs(30 * D * h - 11 * D / 2 * m - 11 * D / 120 * s); if (tp > 2160000) tp = 2160000 * 2 - tp; con[tp].pb(i); } int n; while (scanf("%d", &n) == 1) { vi v = con[n]; for (i = 0; i < sz(v); i++) { int tp = v[i]; int s, m, h; s = tp % 60, tp /= 60; m = tp % 60, tp /= 60; h = tp; printf("%02d:%02d:%02d\n", h, m, s); } } return 0; }