#include <iostream>
#include <list>
using namespace std;
string liczby;
int aktualna;
list <long long> zestaw;
long long i,k,z,w,ktora,n,spacje,j,pozycje,ujemna;
int main()
{
while(cin>>i)
{
getline(cin,liczby);
k=liczby.length();
spacje=0,pozycje=0,aktualna=0,ujemna=0;
for(int d=1;d<=k-1;d++)
{
n=liczby[d];
if(n==32) spacje++;
}
long long data[spacje-1],minusy[spacje-1];
for(int f=1;f<=k-1;f++)
{
n=liczby[f];
if(n==32) data[pozycje]=f,pozycje++;
}
for(int e=k-1;e>=0;e--)
{
n=liczby[e];
if(n!=32&&n!=45)
{
n=n-48;
if (aktualna==0) z=z+n;
else if (aktualna==1) z=z+(n*10);
else if (aktualna==2) z=z+(n*100);
else if (aktualna==3) z=z+(n*1000);
else if (aktualna==4) z=z+(n*10000);
else if (aktualna==5) z=z+(n*100000);
else if (aktualna==6) z=z+(n*1000000);
else if (aktualna==7) z=z+(n*10000000);
else if (aktualna==8) z=z+(n*100000000);
else if (aktualna==9) z=z+(n*1000000000);
else if (aktualna==10) z=z+(n*10000000000);
else if (aktualna==11) z=z+(n*100000000000);
else if (aktualna==12) z=z+(n*1000000000000);
else if (aktualna==13) z=z+(n*10000000000000);
else if (aktualna==14) z=z+(n*100000000000000);
else if (aktualna==15) z=z+(n*1000000000000000);
else if (aktualna==16) z=z+(n*10000000000000000);
else if (aktualna==17) z=z+(n*100000000000000000);
else if (aktualna==18) z=z+(n*1000000000000000000);
aktualna++;
}
else if (n==45) minusy[ujemna]=1;
else
{
aktualna=0;
if(minusy[ujemna]==1) z=z-(2*z);
ujemna++;
zestaw.push_front(z);
z=0;
}
}
ktora=1,w=0;
j=zestaw.size();
zestaw.sort(),zestaw.reverse();
long long obrobione[j-1];
for(list<long long>::iterator y=zestaw.begin(); y!=zestaw.end(); ++y) obrobione[w]=*y,w++;
if (i==0) cout<<"-"<<endl;
else if (i==1&&j>=1) cout<<obrobione[0]<<endl;
else if (i==1&&j==0) cout<<"-"<<endl;
else
{
for(int a=1;a<j;a++)
{
if(obrobione[a]!=obrobione[a-1]) ktora++;
if(ktora>=i) cout<<obrobione[a]<<endl,a=j;
}
if(ktora+1<=i) cout<<"-"<<endl;
}
for(int b=0;b<=j-1;b++) zestaw.pop_back();
}
return 0;
}