#include <math.h>
#include <time.h>
#include <ctype.h>
#include <stdio.h>
#include <assert.h>
#include <stdlib.h>
#include <string.h>
#include <map>
#include <set>
#include <deque>
#include <queue>
#include <stack>
#include <bitset>
#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
 
using namespace std;
const int INF= 2147483647;

#define MAX(a,b) ((a>b)?a:b)
#define MIN(a,b) ((a<b)?a:b)
#define MOD 1000000007

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);	
	int t;
	cin>>t;
	while(t--){
		int n;
		cin>>n;
		int deck[n];
		bool visited[n+1];
		for(int i=1;i<n+1;i++)visited[i]=0;
		for(int i=0;i<n;i++)cin>>deck[i];
		int cur=n;
		vector<int> ans;
		for(int i=n-1;i>=0;i--){
			ans.push_back(deck[i]);
			visited[deck[i]]=1;
			if(deck[i]==cur){
				int sz=ans.size();
				for(int j=sz-1;j>=0;j--){
					cout<<ans[j]<<' ';
				}
				ans.clear();
				while( cur>=0 && visited[--cur] );
			}
		}
		
		int sz=ans.size();
		for(int j=sz-1;j>=0;j--){
			cout<<ans[j]<<' ';
		}
		cout<<'\n';
	}
	return 0;
}
