#include <stdio.h>
#include <stdint.h>
uint32_t extract_field(uint32_t reg, uint8_t pos, uint8_t len){
// uint32_t mask =0;
// int i=pos, j=0;
// while(j<len){
// mask|=(1<<i);
// i++;j++;
// }
// return ((reg & mask)>>pos);
//ORR
if (len>= 32)// for safety
return reg >> pos;
return (reg>>pos) & ((1U<<len)-1);// when len == 32, 1<<len,is dangerous when len == 32 because shifting a 32-bit integer by 32 is undefined behavior.
}
int main(){
uint32_t reg;
uint8_t pos,len;
scanf("%u %hhu %hhu", ®, &pos,&len);
printf("%u", extract_field(reg,pos,len));
return 0;
}