#include<bits/stdc++.h>
using namespace std;
struct no{
int c,s;
struct no *prox;
};
typedef struct{
struct no *topo;
}pilha;
bool isEmpty(pilha *p){
if(p->topo==NULL)return true;
return false;
}
bool push(pilha *p,int c, int s){
struct no *aux;
aux = (struct no *)malloc(sizeof(struct no));
if(aux==NULL)return false;
aux->c = c;
aux->s = s;
aux->prox = p->topo;
p->topo = aux;
return true;
}
bool pop(pilha *p,int *c, int *s){
if(isEmpty(p))return false;
struct no *aux;
aux = p->topo;
p->topo = p->topo->prox;
*c = aux->c;
*s = aux->s;
free(aux);
return true;
}
bool first(pilha *p,int *c, int *s){
if(isEmpty(p))return false;
*c = p->topo->c;
*s = p->topo->s;
return true;
}
bool seccond(pilha *p,int *c, int *s){
if(isEmpty(p))return false;
if(p->topo->prox==NULL)return false;
*c = p->topo->prox->c;
*s = p->topo->prox->s;
return true;
}
bool last(pilha *p, int *c, int *s){
if(isEmpty(p))return false;
struct no *aux = p->topo;
while(aux->prox!=NULL){
aux = aux->prox;
}
*c = aux->c;
*s = aux->s;
return true;
}
int contNos(pilha *p){
if(isEmpty(p))return 0;
struct no *aux = p->topo;
int cont=0;
while(aux!=NULL){
aux = aux->prox;
cont++;
}
return cont;
}
bool destruct(pilha *p){
if(isEmpty(p))return false;
int x,y;
while(!isEmpty(p)){
pop(p,&x,&y);
}
return true;
}
int main(){
pilha p;
int n=0,k=0,c=0,s=0;
bool continua = true;
while(true){
scanf("%d%d", &n,&k);
if(k==n&&n==0)break;
for(int i=0;i<n;i++){
scanf("%d%d", &c,&s);
if(isEmpty(&p)){
push(&p, c,s);
//printf("Primeira insercao\n");
}else{
//printf("Insercao subsequesnte\n");
int c2=0,s2=0;
first(&p,&c2,&s2);
if(s2<=c){
pop(&p,&c2,&s2);
//printf("o carro que chagou as %d saiu agora %d\n", c2,s2);
//first(&p,&c2,&s2);
}
if(!isEmpty(&p)){
struct no *aux = p.topo;
int cont=0;
while(aux!=NULL){
int i=0,j=0;
if(aux->s<=c){
pop(&p,&j,&i);
aux = p.topo;
}else break;
}
}
push(&p,c,s);
}
//printf("%d no estacionamento\n", contNos(&p));
if(c>s||contNos(&p)>k){
continua = false;
//break;
}
}
if(!continua)printf("Nao\n");
else{
int x,y,a,b;
first(&p,&a,&b);
//printf("O proximo carro chegou as: %d e vai sair: %d\n", a,b);
bool resp = false;
while(true){
if(isEmpty(&p)){
//printf("Pilha Vazia\n");
resp==true;
break;
}
int x,y,a,b;
first(&p,&a,&b);
if(seccond(&p,&x,&y)){
//printf("a %d x %d b %d y %d\n", a,x,b,y);
if(a>=x&&b<=y){
int m,n;
pop(&p,&m,&n);
}else if(a<=x&&b>=y){
int x=0,y=0,a,b;
pop(&p,&x,&y);
pop(&p,&a,&b);
push(&p,x,y);
}else if(a<=x&&b<=x){
int x=0,y=0;
pop(&p,&x,&y);
}else if(a>=y&&b>=y){
int x=0,y=0,a,b;
pop(&p,&x,&y);
pop(&p,&a,&b);
push(&p,x,y);
}
else{
break;
}
}else{
//printf("Nao possui segundo elemento\n");
resp = true;
break;
}
}
if(resp)printf("Sim\n");
else printf("Nao\n");
}
continua = true;
destruct(&p);
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBub3sKCWludCBjLHM7CglzdHJ1Y3Qgbm8gKnByb3g7Cn07Cgp0eXBlZGVmIHN0cnVjdHsKCXN0cnVjdCBubyAqdG9wbzsKfXBpbGhhOwoKYm9vbCBpc0VtcHR5KHBpbGhhICpwKXsKCWlmKHAtPnRvcG89PU5VTEwpcmV0dXJuIHRydWU7CglyZXR1cm4gZmFsc2U7Cn0KCmJvb2wgcHVzaChwaWxoYSAqcCxpbnQgYywgaW50IHMpewoJc3RydWN0IG5vICphdXg7CglhdXggPSAoc3RydWN0IG5vICopbWFsbG9jKHNpemVvZihzdHJ1Y3Qgbm8pKTsKCWlmKGF1eD09TlVMTClyZXR1cm4gZmFsc2U7CglhdXgtPmMgPSBjOwoJYXV4LT5zID0gczsKCWF1eC0+cHJveCA9IHAtPnRvcG87CglwLT50b3BvID0gYXV4OwoJcmV0dXJuIHRydWU7Cn0KCmJvb2wgcG9wKHBpbGhhICpwLGludCAqYywgaW50ICpzKXsKCWlmKGlzRW1wdHkocCkpcmV0dXJuIGZhbHNlOwoJc3RydWN0IG5vICphdXg7CglhdXggPSBwLT50b3BvOwoJcC0+dG9wbyA9IHAtPnRvcG8tPnByb3g7CgkqYyA9IGF1eC0+YzsKCSpzID0gYXV4LT5zOwoJZnJlZShhdXgpOwoJcmV0dXJuIHRydWU7CQp9Cgpib29sIGZpcnN0KHBpbGhhICpwLGludCAqYywgaW50ICpzKXsKCWlmKGlzRW1wdHkocCkpcmV0dXJuIGZhbHNlOwoJKmMgPSBwLT50b3BvLT5jOwoJKnMgPSBwLT50b3BvLT5zOwoJcmV0dXJuIHRydWU7Cn0KYm9vbCBzZWNjb25kKHBpbGhhICpwLGludCAqYywgaW50ICpzKXsKCWlmKGlzRW1wdHkocCkpcmV0dXJuIGZhbHNlOwoJaWYocC0+dG9wby0+cHJveD09TlVMTClyZXR1cm4gZmFsc2U7CgkqYyA9IHAtPnRvcG8tPnByb3gtPmM7CgkqcyA9IHAtPnRvcG8tPnByb3gtPnM7CglyZXR1cm4gdHJ1ZTsKfQoKYm9vbCBsYXN0KHBpbGhhICpwLCBpbnQgKmMsIGludCAqcyl7CglpZihpc0VtcHR5KHApKXJldHVybiBmYWxzZTsKCXN0cnVjdCBubyAqYXV4ID0gcC0+dG9wbzsKCXdoaWxlKGF1eC0+cHJveCE9TlVMTCl7CgkJYXV4ID0gYXV4LT5wcm94OwoJfQoJKmMgPSBhdXgtPmM7CgkqcyA9IGF1eC0+czsKCXJldHVybiB0cnVlOwp9CgppbnQgY29udE5vcyhwaWxoYSAqcCl7CglpZihpc0VtcHR5KHApKXJldHVybiAwOwoJc3RydWN0IG5vICphdXggPSBwLT50b3BvOwoJaW50IGNvbnQ9MDsKCXdoaWxlKGF1eCE9TlVMTCl7CgkJYXV4ID0gYXV4LT5wcm94OwoJCWNvbnQrKzsKCX0KCXJldHVybiBjb250Owp9Cgpib29sIGRlc3RydWN0KHBpbGhhICpwKXsKCWlmKGlzRW1wdHkocCkpcmV0dXJuIGZhbHNlOwoJaW50IHgseTsKCXdoaWxlKCFpc0VtcHR5KHApKXsKCQlwb3AocCwmeCwmeSk7Cgl9CglyZXR1cm4gdHJ1ZTsKfQoKaW50IG1haW4oKXsKCXBpbGhhIHA7CglpbnQgbj0wLGs9MCxjPTAscz0wOwoJYm9vbCBjb250aW51YSA9IHRydWU7Cgl3aGlsZSh0cnVlKXsKCQlzY2FuZigiJWQlZCIsICZuLCZrKTsKCQlpZihrPT1uJiZuPT0wKWJyZWFrOwoJCWZvcihpbnQgaT0wO2k8bjtpKyspewoJCQlzY2FuZigiJWQlZCIsICZjLCZzKTsKCQkJaWYoaXNFbXB0eSgmcCkpewoJCQkJcHVzaCgmcCwgYyxzKTsKCQkJCS8vcHJpbnRmKCJQcmltZWlyYSBpbnNlcmNhb1xuIik7CgkJCX1lbHNlewoJCQkJLy9wcmludGYoIkluc2VyY2FvIHN1YnNlcXVlc250ZVxuIik7CgkJCQlpbnQgYzI9MCxzMj0wOwoJCQkJZmlyc3QoJnAsJmMyLCZzMik7CgkJCQlpZihzMjw9Yyl7CgkJCQkJcG9wKCZwLCZjMiwmczIpOwkJCQkKCQkJCQkvL3ByaW50ZigibyBjYXJybyBxdWUgY2hhZ291IGFzICVkIHNhaXUgYWdvcmEgJWRcbiIsIGMyLHMyKTsKCQkJCQkvL2ZpcnN0KCZwLCZjMiwmczIpOwoJCQkJfQoJCQkJaWYoIWlzRW1wdHkoJnApKXsKCQkJCQlzdHJ1Y3Qgbm8gKmF1eCA9IHAudG9wbzsKCQkJCQlpbnQgY29udD0wOwoJCQkJCXdoaWxlKGF1eCE9TlVMTCl7CgkJCQkJCWludCBpPTAsaj0wOwoJCQkJCQlpZihhdXgtPnM8PWMpewoJCQkJCQkJcG9wKCZwLCZqLCZpKTsKCQkJCQkJCWF1eCA9IHAudG9wbzsKCQkJCQkJfWVsc2UgYnJlYWs7CgkJCQkJCQoJCQkJCX0KCQkJCX0KCQkJCXB1c2goJnAsYyxzKTsKCQkJfQoJCQkvL3ByaW50ZigiJWQgbm8gZXN0YWNpb25hbWVudG9cbiIsIGNvbnROb3MoJnApKTsKCQkJaWYoYz5zfHxjb250Tm9zKCZwKT5rKXsKCQkJCWNvbnRpbnVhID0gZmFsc2U7CgkJCQkvL2JyZWFrOwoJCQl9CgkJfQoJCWlmKCFjb250aW51YSlwcmludGYoIk5hb1xuIik7CgkJZWxzZXsJCQoJCQkJaW50IHgseSxhLGI7CgkJCQlmaXJzdCgmcCwmYSwmYik7CgkJCQkvL3ByaW50ZigiTyBwcm94aW1vIGNhcnJvIGNoZWdvdSBhczogJWQgZSB2YWkgc2FpcjogJWRcbiIsIGEsYik7CgkJCWJvb2wgcmVzcCA9IGZhbHNlOwoJCQl3aGlsZSh0cnVlKXsKCQkJCWlmKGlzRW1wdHkoJnApKXsKCQkJCQkvL3ByaW50ZigiUGlsaGEgVmF6aWFcbiIpOwoJCQkJCXJlc3A9PXRydWU7CgkJCQkJYnJlYWs7CgkJCQl9CgkJCQlpbnQgeCx5LGEsYjsKCQkJCWZpcnN0KCZwLCZhLCZiKTsKCQkJCWlmKHNlY2NvbmQoJnAsJngsJnkpKXsKCQkJCQkvL3ByaW50ZigiYSAlZCAgIHggJWQgICBiICVkICAgeSAlZFxuIiwgYSx4LGIseSk7CgkJCQkJaWYoYT49eCYmYjw9eSl7CgkJCQkJCWludCBtLG47CgkJCQkJCXBvcCgmcCwmbSwmbik7CgkJCQkJfWVsc2UgaWYoYTw9eCYmYj49eSl7CgkJCQkJCWludCB4PTAseT0wLGEsYjsKCQkJCQkJcG9wKCZwLCZ4LCZ5KTsKCQkJCQkJcG9wKCZwLCZhLCZiKTsKCQkJCQkJcHVzaCgmcCx4LHkpOwoJCQkJCX1lbHNlIGlmKGE8PXgmJmI8PXgpewoJCQkJCQlpbnQgeD0wLHk9MDsKCQkJCQkJcG9wKCZwLCZ4LCZ5KTsKCQkJCQl9ZWxzZSBpZihhPj15JiZiPj15KXsKCQkJCQkJaW50IHg9MCx5PTAsYSxiOwoJCQkJCQlwb3AoJnAsJngsJnkpOwoJCQkJCQlwb3AoJnAsJmEsJmIpOwoJCQkJCQlwdXNoKCZwLHgseSk7CQkJCQkKCQkJCQl9CgkJCQkJZWxzZXsKCQkJCQkJYnJlYWs7CgkJCQkJfQoJCQkJfWVsc2V7CgkJCQkJLy9wcmludGYoIk5hbyBwb3NzdWkgc2VndW5kbyBlbGVtZW50b1xuIik7CgkJCQkJcmVzcCA9IHRydWU7CgkJCQkJYnJlYWs7CgkJCQl9CgkJCQkKCQkJfQoJCQlpZihyZXNwKXByaW50ZigiU2ltXG4iKTsKCQkJZWxzZSBwcmludGYoIk5hb1xuIik7CgkJfQoJCWNvbnRpbnVhID0gdHJ1ZTsKCQlkZXN0cnVjdCgmcCk7Cgl9CglyZXR1cm4gMDsKfQ==