#include <limits.h>
#include <stdio.h>
#include <string.h>
#include <vector>

using std::pair;
typedef std::vector<std::pair<int, int>> vec;
using std::make_pair;

int n, i;
vec es[100000];
int color[100000];
int max;

void co(int v, int p, int c){
	int l= es[v].size(), i;
	if(l>max) max=l;
	int j=0;
	for(i=0; i<l; i++){
		if(j==c) j++;
		int r = es[v][i].second;
		if(r!=p){
			color[es[v][i].first]=j;
			co(r, v, j);
			j++;
		}
	}
}

int main(void){
	scanf("%d", &n);
	int a, b;
	for(i=0; i<n-1; i++){
		scanf("%d%d", &a, &b);
		es[a-1].emplace_back(make_pair(i, b-1));
		es[b-1].emplace_back(make_pair(i, a-1));
	}
	max=0;
	co(0, -1, -1);
	printf("%d\n", max);
	for(i=0; i<n-1; i++){
		printf("%d\n", color[i]+1);
	}
}
