// includes {{{ #include #include #include #include #include #include #include #include #include #include #include #include #include #include // #include // #include // #include // #include // }}} using namespace std; using ll = long long; int main() { std::ios::sync_with_stdio(false), std::cin.tie(0); int n; cin >> n; vector a(n); for(int i = 0; i < n; i++) cin >> a[i]; if(a[0] > a[n-1]) return cout << "No" << endl, 0; cout << "Yes" << endl; vector ans; stack stk; stk.push(a[0]); for(int i = 1; i < n - 1; i++) { if(stk.top() < a[i]) { while(stk.size() >= 2 && stk.top() < a[i]) { ans.push_back(stk.top()); stk.pop(); } // top > a[i] if(stk.top() < a[i]) { ans.push_back(a[i]); } else { stk.push(a[i]); } } else { stk.push(a[i]); } } while(stk.size()) { ans.push_back(stk.top()); stk.pop(); } assert(ans.size() == n - 1); for(int i = 0; i < n - 1; i++) cout << ans[i] << " \n"[i == n - 2]; return 0; }