#include<iostream>
#include<stdio.h>
#include<string>
using namespace std;
struct p
{
unsigned char a;
unsigned char b;
unsigned char c;
unsigned char d;
}ip;
struct a
{
struct p p1;//目的网络
struct p p2;//子网掩码
char s[30];// 下一跳
};
int main()
{
int i;
struct p x;
struct a record[5];
record[0].p1.a=128;
record[0].p1.b=96;
record[0].p1.c=39;
record[0].p1.d=0;
record[0].p2.a=255;
record[0].p2.b=255;
record[0].p2.c=255;
record[0].p2.d=128;
strcpy(record[0].s,"接口m0");
record[1].p1.a=128;
record[1].p1.b=96;
record[1].p1.c=39;
record[1].p1.d=128;
record[1].p2.a=255;
record[1].p2.b=255;
record[1].p2.c=255;
record[1].p2.d=128;
strcpy(record[1].s,"接口m1");
record[2].p1.a=128;
record[2].p1.b=96;
record[2].p1.c=40;
record[2].p1.d=0;
record[2].p2.a=255;
record[2].p2.b=255;
record[2].p2.c=255;
record[2].p2.d=128;
strcpy(record[2].s,"R2");
record[3].p1.a=192;
record[3].p1.b=4;
record[3].p1.c=153;
record[3].p1.d=0;
record[3].p2.a=255;
record[3].p2.b=255;
record[3].p2.c=255;
record[3].p2.d=192;
strcpy(record[3].s,"R3");
record[4].p1.a=0;
record[4].p1.b=0;
record[4].p1.c=0;
record[4].p1.d=0;
record[4].p2.a=0;
record[4].p2.b=0;
record[4].p2.c=0;
record[4].p2.d=0;
strcpy(record[4].s,"R4");//默认路由
scanf("%d.%d.%d.%d",&x.a,&x.b,&x.c,&x.d);
for( i=0;i<=3;i++)
{
if(((x.a&record[i].p2.a)==record[i].p1.a)&&((x.b&record[i].p2.b)==record[i].p1.b)&&((x.c&record[i].p2.c)==record[i].p1.c)&&
((x.d&record[i].p2.d)==record[i].p1.d))
{printf("%s/n",record[i].s);
break;
}
}
if(i==4)
{printf("%s/n",record[4].s);
}
return 1;
}