#include <stdio.h> // по какой-то причине e-olimp, не хотел видеть getchar
#include <iostream>
#include <vector>
#include <cstring>
#include <sstream>
using namespace std;
int main(){
int n; // Количество вагонов в поезде
int number; // отвечает за нумерацию вагонов
stringstream stream_my; // принимает поезд из потока ввода, и выдает под одному вагону
while( (cin >> n, getchar(), n != 0) ){ // Считываем количество вагонов
string s; // Перед тем как кинуть в поток, мы сохраняем вагон в строке
getline(cin, s, '\n');
while(s != "0"){
vector<int> stalemate;
stream_my.str("");
stream_my.clear(); // очищаем поток и збрасываем флаги
stream_my << s;
stream_my >> number; // мы должны считывать number, а закидывать -- i
for( int i=1 ; i<=n ; i++ ){ //
stalemate.push_back(i); // кидаем в тупик вагоны по порядку, пока не будет найден number
while(!stalemate.empty() && number == stalemate.back()){ // пока в тупике вагоны идут по порядку вывозим их от туда
stalemate.pop_back();
stream_my >> number;
}
}
cout << (stalemate.empty()? "Yes" : "No") << endl; // Если нам что-то помешало вывезти все вагоны из тупика, то ответ No
getline(cin, s, '\n');
}
cout << endl;
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CQkJLy8g0L/QviDQutCw0LrQvtC5LdGC0L4g0L/RgNC40YfQuNC90LUgZS1vbGltcCwg0L3QtSDRhdC+0YLQtdC7INCy0LjQtNC10YLRjCBnZXRjaGFyCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDxzc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCl7CglpbnQgbjsJCQkJCQkvLyDQmtC+0LvQuNGH0LXRgdGC0LLQviDQstCw0LPQvtC90L7QsiDQsiDQv9C+0LXQt9C00LUKCWludCBudW1iZXI7CQkJCQkvLyDQvtGC0LLQtdGH0LDQtdGCINC30LAg0L3Rg9C80LXRgNCw0YbQuNGOINCy0LDQs9C+0L3QvtCyCglzdHJpbmdzdHJlYW0gc3RyZWFtX215OwkJLy8g0L/RgNC40L3QuNC80LDQtdGCINC/0L7QtdC30LQg0LjQtyDQv9C+0YLQvtC60LAg0LLQstC+0LTQsCwg0Lgg0LLRi9C00LDQtdGCINC/0L7QtCDQvtC00L3QvtC80YMg0LLQsNCz0L7QvdGDCgl3aGlsZSggKGNpbiA+PiBuLCBnZXRjaGFyKCksIG4gIT0gMCkgKXsJCS8vINCh0YfQuNGC0YvQstCw0LXQvCDQutC+0LvQuNGH0LXRgdGC0LLQviDQstCw0LPQvtC90L7QsgoJCXN0cmluZyBzOwkJCQkJCS8vINCf0LXRgNC10LQg0YLQtdC8INC60LDQuiDQutC40L3Rg9GC0Ywg0LIg0L/QvtGC0L7Quiwg0LzRiyDRgdC+0YXRgNCw0L3Rj9C10Lwg0LLQsNCz0L7QvSDQsiDRgdGC0YDQvtC60LUKCQlnZXRsaW5lKGNpbiwgcywgJ1xuJyk7CgkJd2hpbGUocyAhPSAiMCIpewoJCQl2ZWN0b3I8aW50PiBzdGFsZW1hdGU7CgkJCXN0cmVhbV9teS5zdHIoIiIpOwoJCQlzdHJlYW1fbXkuY2xlYXIoKTsJCQkJCQkvLyDQvtGH0LjRidCw0LXQvCDQv9C+0YLQvtC6INC4INC30LHRgNCw0YHRi9Cy0LDQtdC8INGE0LvQsNCz0LgKCQkJc3RyZWFtX215IDw8IHM7CgkJCXN0cmVhbV9teSA+PiBudW1iZXI7CQkJCQkvLyDQvNGLINC00L7Qu9C20L3RiyDRgdGH0LjRgtGL0LLQsNGC0YwgbnVtYmVyLCDQsCDQt9Cw0LrQuNC00YvQstCw0YLRjCAtLSBpCgkJCWZvciggaW50IGk9MSA7IGk8PW4gOyBpKysgKXsJCQkvLwoJCQkJc3RhbGVtYXRlLnB1c2hfYmFjayhpKTsJCQkJCS8vINC60LjQtNCw0LXQvCDQsiDRgtGD0L/QuNC6INCy0LDQs9C+0L3RiyDQv9C+INC/0L7RgNGP0LTQutGDLCDQv9C+0LrQsCDQvdC1INCx0YPQtNC10YIg0L3QsNC50LTQtdC9IG51bWJlcgoJCQkJd2hpbGUoIXN0YWxlbWF0ZS5lbXB0eSgpICYmIG51bWJlciA9PSBzdGFsZW1hdGUuYmFjaygpKXsJCS8vINC/0L7QutCwINCyINGC0YPQv9C40LrQtSDQstCw0LPQvtC90Ysg0LjQtNGD0YIg0L/QviDQv9C+0YDRj9C00LrRgyDQstGL0LLQvtC30LjQvCDQuNGFINC+0YIg0YLRg9C00LAKCQkJCQlzdGFsZW1hdGUucG9wX2JhY2soKTsKCQkJCQlzdHJlYW1fbXkgPj4gbnVtYmVyOwoJCQkJfQoJCQl9CgkJCWNvdXQgPDwgKHN0YWxlbWF0ZS5lbXB0eSgpPyAiWWVzIiA6ICJObyIpIDw8IGVuZGw7CQkvLyDQldGB0LvQuCDQvdCw0Lwg0YfRgtC+LdGC0L4g0L/QvtC80LXRiNCw0LvQviDQstGL0LLQtdC30YLQuCDQstGB0LUg0LLQsNCz0L7QvdGLINC40Lcg0YLRg9C/0LjQutCwLCDRgtC+INC+0YLQstC10YIgTm8KCQkJZ2V0bGluZShjaW4sIHMsICdcbicpOwoJCX0KCQljb3V0IDw8IGVuZGw7Cgl9Cgp9