#include <cstdio>
#include<iostream>
#include<string>
#include<algorithm>
/*
* 解题思路和代码来自王道机试课
* 所有的蚂蚁分为两类 A蚂蚁和普通蚂蚁
* 1 两只运动蚂蚁发生碰撞时,由于是交换双方的速度,所以可等价双方直接互相穿越。
*   记A蚂蚁左边的但是向左走的蚂蚁为LL,A蚂蚁右边但向右走的蚂蚁为RR这两种蚂蚁不会与A蚂蚁碰撞,
*   因此不会对A蚂蚁产生任何影响。
*   记A蚂蚁的左边但向右走的蚂蚁为LR,A蚂蚁右边但向左走的蚂蚁为RL。
*   A最终的方向取决于左边向右走(LR)和A右边向左走(RL)的蚂蚁的相对数量
* 2 如果只有一个普通蚂蚁和A,普通蚂蚁碰撞了静止的A导致A下落
*   那么A的下落时间等于不发生碰撞情况下普通蚂蚁的原本下落时间(这是因为普通蚂蚁碰撞A后普通蚂蚁会静止,
*   而A蚂蚁会继承普通蚂蚁的速度,沿着普通蚂蚁的方向继续前进)
* 3 记LR的数量为LRN,RL的数量为RLN
*   如果 LRN == RLN 则 A不会掉下
*   如果 LRN > RLN 则 第RLN+1个LR蚂蚁会碰撞A导致A下落,其余LR蚂蚁不和A碰撞(LR碰撞了A后,A的速度变为R,
*   剩下的LR和A蚂蚁同向,速度相同,自然不会再相撞)
*   如果 LRN < RLN 则 第LRN+1个RL蚂蚁会碰撞A导致A下落,其余RL蚂蚁不和A碰撞(与LRN>RLN的情况同理)
*/
using namespace std;
typedef struct Ant{
    int pos;
    int velocity;
} ;
int main(){
    int n;
    scanf("%d",&n);
    Ant ant[100];
    int Apos;
    for(int i=0;i<n;i++){
        scanf("%d%d",&ant[i].pos,&ant[i].velocity);
        if(ant[i].velocity==0){
            Apos=ant[i].pos;
        }
    }
    int LR[100],RL[100];
    int LRN=0;
    int RLN=0;
    for(int i=0;i<n;i++){
        if(ant[i].pos<Apos&&ant[i].velocity>0){
            LR[LRN++]=ant[i].pos;
        }
        if(ant[i].pos>Apos&&ant[i].velocity<0){
            RL[RLN++]=ant[i].pos;
        }
    }
    if(LRN==RLN){
        printf("Cannot fall!\n");
        return 0;
    }
    else{
	  	//按照蚂蚁在木棒的位置上排序,这样再能将木棒上的位置和时间对齐,
	  	//通过输出位置来输出时间
        sort(LR,LR+LRN);
        sort(RL,RL+RLN);
	  // 刚开始的蚂蚁分布大致如下
       // LR[0] --> LR[1] --> LR[2] --> ... -> LR[LRN-1] --> A <-- RL[0] <-- RL[1] ... <-- RL[RLN-1]
        if(LRN>RLN){
		  	// LR[LRN-1]匹配RL[0] LR[LRN-2]匹配RL[1] ... LR[LRN-RLN]匹配RL[RLN-1]
            // 多出的第一个LR是 LR[LRN-RLN-1] 从左往右走
            printf("%d\n",100-LR[LRN-RLN-1]);//木棒长度100速度大小1cm/s,
		  //100-LR[LRN-RLN-1]的只就是A蚂蚁从0开始到下落所经过的时间
        }
        else{
		  // LR[LRN-1]匹配RL[0] LR[LRN-2]匹配RL[1] ... LR[0]匹配RL[LRN-1]
          // 多出的第一个RL是 RL[LRN] 从右往左走
            printf("%d\n",RL[LRN]);
        }
    }
}