#include #define all(vec) vec.begin(),vec.end() using namespace std; typedef long long int ll; typedef pair P; const ll MOD=1000000007; const ll INF=10000010; const ll LINF=4000000000000000010LL; const int MAX=310; const double EPS=1e-9; int dx[4]={0,1,0,-1}; int dy[4]={1,0,-1,0}; int dp[1010]; int m[1010]; vector ans; void dfs(int i){ ans.push_back(i); if(m[i]==0)return; dfs(m[i]); } int main(){ int n;cin>>n; int v[1010]; for(int i=1;i<=n;i++){ cin>>v[i]; } for(int i=1;i<=n;i++){ for(int j=1;jdp[n]){ dfs(n-1); }else{ dfs(n); } reverse(all(ans)); cout<