#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAXRETRIES	(16*3)
#define NFILT		1
#define NCHAN		16

static int sync_init(void)
{
	int i;
	int retries;
	for(retries = 0; retries < MAXRETRIES; retries++) {
		for(i = 0; i < NCHAN; i++) {
			int ch = fgetc(stdin);
			if(EOF == ch) {
				fprintf(stderr, "Reached EOF in init\n");
				exit(1);
			}
			if((ch & 0x0f) != i) {
				//fprintf(stdout, "no-sync %d-%d\n", i, ch & 0x0f);
				break;
			} else {
				fgetc(stdin);
				fgetc(stdin);
			}
		}
		if(i == NCHAN)
			return 1;
	}
	return 0;
}

int main(void)
{
	unsigned cnts[NCHAN];
	unsigned frac[NCHAN];

	memset(cnts, 0, sizeof(cnts));
	memset(frac, 0, sizeof(frac));

	setvbuf(stdin, NULL, _IONBF, 0);
	setvbuf(stdout, NULL, _IONBF, 0);
	setvbuf(stderr, NULL, _IONBF, 0);

	if(!sync_init())
		exit(1);

	while(1) {
		int a, b, c;
		int chan;

		if(EOF == (a = fgetc(stdin)))
			break;
		if(EOF == (b = fgetc(stdin)))
			break;
		if(EOF == (c = fgetc(stdin)))
			break;

		chan = a & 0x0f;
		cnts[chan] = ((cnts[chan] * (NFILT-1)) / NFILT) + (((a & 0xf0) << 4) + (b & 0xff));
		frac[chan] = ((frac[chan] * (NFILT-1)) / NFILT) + (c & 0xff);

		if(chan < 12)
			fprintf(stdout, "%01x-%03x.%02x", chan, cnts[chan] / NFILT, frac[chan] / NFILT);

		if(chan == NCHAN-1) {
			fprintf(stdout, "\r");
		} else
			fprintf(stdout, " ");
	}
	return 0;
}
