#include <bits/stdc++.h>
using namespace std;
#define FOR(i,a,b) for(int i=(a);i<(b);++i)
#define rep(i,n)   FOR(i,0,n)
#define pb emplace_back
typedef long long ll;
typedef pair<int,int> pint;

vector<pint> g[100001];
int n,ai,bi;
int ans[100001];
int mx=0;
void dfs(int v,int p,int pc){
    int co=0;
    for(auto it:g[v])if(it.first!=p){
        if(pc==co) ++co;
        ans[it.second]=co;
        mx=max(mx,co);
        dfs(it.first,v,co);
        ++co;
    }
}
int main(){
    cin>>n;
    rep(i,n-1){
        cin>>ai>>bi;
        --ai,--bi;
        g[ai].pb(bi,i);
        g[bi].pb(ai,i);
    }
    dfs(0,-1,-1);
    cout<<mx+1<<endl;
    rep(i,n-1) cout<<ans[i]+1<<endl;
    return 0;
}