#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct node
{
int data, next;
}s[100005], *a[100005];
int p = 0;
int main()
{
int t, n, i;
scanf("%d", &t);
while(t--)
{
p = 0;
scanf("%d", &n);
for(i = 1; i <= n; i++)
{
scanf("%d", &s[i].data);
s[i].next = -1;
if(p == 0)a[p++] = &s[i];
else
{
while(p > 0 && a[p - 1] -> data < s[i].data)
{
a[p - 1] -> next = s[i].data;
p--;
}
a[p++] = &s[i];
}
}
for(i = 1; i <= n; i++)printf("%d-->%d\n", s[i].data, s[i].next);
printf("\n");
}
return 0;
}