#include <stdio.h>

unsigned int rightrot(unsigned int x, unsigned int n)
{
    unsigned int i, rmb;

    for(i = 0; i < n; ++i)
    {
        // get right-most bit
        rmb = x & 1;

        // shift 1 to right
        x = x >> 1;

		// if right-most bit is set, set left-most bit
        
        if (rmb == 1)
            x = x | (~0u ^ (~0u >> 1) );
    }

    return x;
}

int main(void) {
	printf("%u\n", rightrot(122, 2));
	return 0;
}
