Dynamics in S^1: rotation number

Suppose f,g in Hom_+(S^1),i.e, orientation-preserving homeomorphisms of the circle (deg(f) = deg(g) = 1), such that f o g = g o f

Show that rho(f o g) = rho(f) + rho(g) (mod 1), where rho is the rotation number.

This is where I got so far:

Let F and G be liftings to R of f and g, respectively.

Then F o G and G o F are both liftings of f o g = g o f.

So there is an integer k such that F o G = G o F + k

Then resolving the recurrence a_{n+1} = a_n + n,

one can check that (F o G)^n = F^n o G^n -(n(n-1)/2).k (I)

Then ((F o G)^n(x)-x)/n = (F^n(G^n(x)) - G^n(x))/n + (G^n(x)-x)/n - ((n-1)/2)k

The problem here is that when taking limit in n->inf, the last term of the right side of the equation goes to -inf, which doesnt make sense, since Poincare says that the limit in n of all the other terms in that equation are finite

I probably messed up in calculating (I), but I believe that(n(n-1)/2) is the number of permutations required for getting from F(G(F(G(...(F(G(F(G(x)))))...)))) to F(F(F(F(...(G(G(G(G((x))))))...)))) and in each one of those, we permute G o F by F o G, thus a -k appearing in each step.

I guess if I find liftings which conmmute, then the problem is solved. But I dont see why that should happen

Well, thanks in advance