#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for(i=0;i<n;i++)
#define rep1(i,n) for (i=1; i<=n ;i++)
#define gi(n) cin >> n
#define pi(n) cout << n
#define pn printf("\n")
typedef long long ll;
#define MAX 111111
ll order[MAX];
int main() {
int i, n, flag, need;
cin >> n;
while(n!=0){
stack <int> lane;
need = 1;
bool state = true;
rep(i,n) gi(order[i]);
rep(i,n) {
while (!lane.empty() && lane.top() == need) {
need++;
lane.pop();
}
if (order[i] == need) {
need++;
}
else if (!lane.empty() && lane.top() < order[i]) {
state = false;
break;
}
else {
lane.push(order[i]);
}
}
if (state) cout << "yes" << "\n";
else cout << "no" << "\n";
gi(n);
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgcmVwKGksbikgZm9yKGk9MDtpPG47aSsrKQojZGVmaW5lIHJlcDEoaSxuKSBmb3IgKGk9MTsgaTw9biA7aSsrKQojZGVmaW5lIGdpKG4pIGNpbiA+PiBuCiNkZWZpbmUgcGkobikgY291dCA8PCBuCiNkZWZpbmUgcG4gcHJpbnRmKCJcbiIpCnR5cGVkZWYgbG9uZyBsb25nIGxsOwojZGVmaW5lIE1BWCAxMTExMTEKbGwgb3JkZXJbTUFYXTsKCmludCBtYWluKCkgewoJaW50IGksIG4sIGZsYWcsIG5lZWQ7CgljaW4gPj4gbjsKCXdoaWxlKG4hPTApewoJCXN0YWNrIDxpbnQ+IGxhbmU7CgkJbmVlZCA9IDE7CgkJYm9vbCBzdGF0ZSA9IHRydWU7CgkJcmVwKGksbikgZ2kob3JkZXJbaV0pOwoJCXJlcChpLG4pIHsKCQkJd2hpbGUgKCFsYW5lLmVtcHR5KCkgJiYgbGFuZS50b3AoKSA9PSBuZWVkKSB7CgkJCQluZWVkKys7CgkJCQlsYW5lLnBvcCgpOwoJCQl9CgkJCWlmIChvcmRlcltpXSA9PSBuZWVkKSB7CgkJCQluZWVkKys7CgkJCX0gCgkJCWVsc2UgaWYgKCFsYW5lLmVtcHR5KCkgJiYgbGFuZS50b3AoKSA8IG9yZGVyW2ldKSB7CgkJCQlzdGF0ZSA9IGZhbHNlOwoJCQkJYnJlYWs7CgkJCX0gCgkJCWVsc2UgewoJCQkJbGFuZS5wdXNoKG9yZGVyW2ldKTsKCQkJfQoJCX0KCQlpZiAoc3RhdGUpIGNvdXQgPDwgInllcyIgPDwgIlxuIjsKCQllbHNlIGNvdXQgPDwgIm5vIiA8PCAiXG4iOwoJCWdpKG4pOwoJfQoJcmV0dXJuIDA7Cn0=
NSAKNCAxIDUgMyAyIAo1IAozIDEgMiA1IDQgCjUgCjUgMyAyIDEgNCAKMTAgCjEgMiAxMCA1IDQgMyA3IDYgOCA5IAoxMCAKMSAyIDEwIDUgNCAzIDkgOCA3IDYgCjUgCjMgNSAyIDQgMSAKNSAKMSAyIDQgMyA1IAo0IAo0IDIgMyAxIAow
5
4 1 5 3 2
5
3 1 2 5 4
5
5 3 2 1 4
10
1 2 10 5 4 3 7 6 8 9
10
1 2 10 5 4 3 9 8 7 6
5
3 5 2 4 1
5
1 2 4 3 5
4
4 2 3 1
0