Go: package main

import (
	"bufio"
	"os"
	"strconv"
	"fmt"
)

var scanner = bufio.NewScanner(os.Stdin)

func main() {
	for scanner.Scan() {
		n, _ := strconv.Atoi(scanner.Text())
		if n == 0 {
			break
		}
		a := make([]int, 10)
		for i := 0; i < n; i++ {
			scanner.Scan()
			c, _ := strconv.Atoi(scanner.Text())
			a[c]++
		}
		for _, v := range a {
			if v == 0 {
				fmt.Println("-")
				continue
			}
			for i := 0; i < v; i++ {
				if i == v-1 {
					fmt.Println("*")
				} else {
					fmt.Print("*")
				}
			}
		}
	}
}

C++: #include<cstdio>
#include<iostream>
using namespace std;
int main()
{
	int n,c[10]={0},m;
	while(1)
	{	
		for(int i=0;i<10;i++)
		{
			c[i]=0;
		}
		cin>>n;
		if(n==0)
		{
			break;
		}
		for(int i=1;i<=n;i++)
		{
			cin>>m;
			c[m]+=1;
		}
		for(int i=0;i<10;i++)
		{
			if(c[i]==0)
			{
				cout<<"_"<<endl;
			}
			else
			{
				for(int j=0;j<c[i];j++)
				{
					cout<<"*";
				}
				cout<<endl;
			}
		}
	}	
	return 0;
}

C++: #include<iostream>
using namespace std;

int main(){

  int n;
  int a[100] = {0},m;

  while(cin >> n, n){

    for(int i=0;i<n;i++){
      cin >> m;
      a[m]++;
    }

    for(int i=0;i<10;i++){
      if(a[i] == 0) cout << "-";
      else{
	for(int j=0;j<a[i];j++) cout << "*";
      }
      cout << endl;
    }
  }
}

C++: #include<stdio.h>
int main(void)
{
	int n=0;
	int syurui[10]={0};
	int kazu=0;
	int i=0,j=0;
	
	scanf("%d",&n);
	for (i=1;i<=n;i++)
	{
		scanf("%d",&kazu);
		syurui[kazu]++;
	}
	printf("0\n");
	for (i=0;i<10;i++)
	{
		if (syurui[i]==0)
		{
			printf("-");
		}
		else
		{
			for (j=1;j<=syurui[i];j++)
			{
				printf("*");
			}
		}
		puts("");
	}
	return 0;
}

C++: case 0:
n[0]++;break;

#include<stdio.h>

int main(){

int n[11]={};
int N,x;
while(1){
scanf("%d",&N);

for(int i=0;i<N;i++)
{
scanf("%d",&x);
n[x]++;
}

for(int i=0;i<10;i++)
{
if(n[i]>0){
for(int j=0;j<n[i];j++)
printf("*");}
else if(n[i]==0)printf("-");
}
printf("\n");
}
return 0;
}

C++: #include<iostream>

using namespace std;

int main() {
  int x,m,n;
  int a[10000];
  cin >> n;

  for(int i =0;i<n;i++){
    cin >> m;
    a[m] += 1;
  }
  for(int j =0;j<9 ;j++){
    if(a[j]==0){
      cout << "-";
    }else{
      for(int k =0;k<a[j];k++){
	cout << "*";
      }
    }
    cout << endl;
  }

	return 0;
}

C++: #include <iostream>
#include <algorithm>
using namespace std;

int main() {
  while(1) {
    int n;
    cin >> n;
    if(n == 0) break;
    int num[10];
    fill(&num[0], &num[10], 0);
    for(int i = 0; i < n; i++) {
      int kind;
      cin >> kind;
      num[kind]++;
    }
    for(int j = 0; j < 10; j++) {
      if(num[j] == 0) cout << '-';
      for(int i = 0; i < num[j]; i++) {
	cout << '*';
      }
      cout << endl;
    }
  }
  return 0;
}

C++: #include <stdio.h>

int main(void)
{
	int a[10]={0};
	int n,i,j,k,l,x;
	
	for(j=0;j<20;j++)
	{
		//printf("?????°???");
		for(l=0;l<10;l++)
		a[l]=0;
		scanf("%d",&n);
		if(n==0)
		break;
		
		else
		{
			for(i=0;i<n;i++)
			{
				scanf("%d",&x);
				a[x]=a[x]+1;
			}
		}
	for(k=0;k<10;k++)
	{
		if(a[k])
		{
			for(l=0;l<a[k];l++)
			{
				printf("*");
			}
			printf("\n");
		}
		else printf("-\n");
	}
	}
	return 0;
}

C++: #include<iostream>
#include<string>

using namespace std;

int main() {
  int n, a;
  cin >> n;
  int b[10] = {};
  while (cin >> a) {
    b[a] += 1;
  }
  for (int i = 0; i < 10; i++) {
    if (b[i] > 0){
    string s(b[i], '*');
    cout << s << endl;
  } else {
    cout << '-' << endl;
  }
  }
  return 0;
}

C++: #include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
#include <math.h>

//#define PI 3.141592653589

using namespace std;



int main()
{
	int n;
	int ice[10];
	int type;
	
	while (1)
	{
		cin >> n;
		if (n == 0) break;
		
		for (int i=0; i<10; i++) ice[i] = 0;
		for (int i=0; i<n; i++)
		{
			cin >> type;
			ice[type]++;
		}
		for (int i=0; i<10; i++)
		{
			if (ice[i] == 0)
			{
				cout << "-";
			} else {
				for (int j=0; j<ice[i]; j++)
				{
					cout << "*";
				}
			}
			cout << endl;
		}
	}
	
	return 0;
}

C++: // #define _CRT_SECURE_NO_WARNINGS
// #define _USE_MATH_DEFINES
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <vector>
#include <map>
#include <set>
#include <stack>
#include <cmath>
#include <cstdlib>
#include <functional>
#include <locale>
#include <cctype>
#include <sstream>
using namespace std;

typedef long long LL;
typedef vector<int> VI;
typedef vector<VI> VVI;
typedef map<int, int> MAPII;
typedef multimap<int, char, greater<int> > MuMAPIC;
typedef vector<pair<int, int> > VPII;
typedef multimap<int, string, greater<int> > MuMIS;

#define MP make_pair
#define fastIO  cin.tie(0); ios::sync_with_stdio(false);
#define FOR(i,a,b) for(int i=(a);i<(b);i++)
//for gcc (未test)
// #define FOREACH_IT(it,c) for(typeof(c)::iterator it=(c).begin(); it!=(c).end(); ++it)
//for Visual Studio
#define foreach_it(type,it,c) for(type::iterator it=c.begin(),c_end=c.end();it!=c_end;++it)
#define DUMP_VVI(b) FOR(i,0,b.size()){FOR(j,0,b[i].size())printf("%d ",b[i][j]);puts("");}
int INPUT_INT() { int d; cin >> d; return d; } // 入力をpush_back(d)やarray[d]に使う時に無駄な変数を使わない

// ------------------- include, typedef, define END. -------------------

void solve(VI in){
	FOR(i, 0, in.size()){
		if (in[i]){
			while (in[i]--){
				cout << "*";
			}
			cout << endl;
		}
		else{
			cout << "-" << endl;
		}
	}
}

int main(){
	int n;
	while (cin >> n,n){
		VI input(10,0);
		FOR(i, 0, n){
			input[INPUT_INT()]++;
		}
		solve(input);
	}
	return 0;
}

C++: #include <iostream>

using namespace std;

int main(){
	int n,t;
	while(cin >> n && n){
		int v[10] = {0};
		
		for(int i=0;i<n;i++){
			cin >> t;
			v[t]++;
		}
		for(int i=0;i<10;i++){
			if(v[i] == 0){
				cout << "-" << endl;
			}else{
				for(int j=0;j<v[i];j++){
					cout << "*";
				}
				cout << endl;
			}
		}
	}
}

C++: #include<bits/stdc++.h>
#define REP(i,n) for(long long i=0;i<n;++i)
#define FOR(i,a,b) for(long long i=a;i<b;++i)
using namespace std;
using point = pair< int,int >;
using ll = long long;

int main(){
    int n;
    int c;
    int graph[11];
    while (~scanf("%d", &n)) {
        if (!n) break;
        fill(graph, graph + 11, 0);
        REP(i, n) {
            scanf("%d", &c);
            graph[c]++;
        }
        FOR(i, 0, 10) {
            if (!graph[i]) printf("-\n");
            else {
                REP(j, graph[i]) printf("*");
                puts("");
            }
        }
    }
    return 0;
}

C++: #include<iostream>
using namespace std;

#define N 16

int main()
{
  while(true){
    int n;
    cin >> n;
    if ( n == 0 ) break;
    int ice[N]={0,};
    for(int i = 0; i < n; ++i){
      int t;
      cin >> t;
      ice[t]++;
    }
    for(int i = 0; i < 10; ++i){
      if( ice[i] > 0 ){
	for(int j = 0; j < ice[i];  ++j){
	  cout << '*';
	}
	cout << endl;
      }else{
	cout << '-' << endl;
      }
    }
  }
  return 0;
}

C++: #include <iostream>

using namespace std;

int main() {
	
	int n;

	while (cin >> n && n != 0) {

		int C[10];

		for (int i = 0; i < 10; i++)
			C[i] = 0;

		int temp;

		for (int i = 0; i < n; i++) {

			cin >> temp;
			C[temp]++;

		}
		
		for (int i = 0; i < 10; i++) {

			if (C[i] == 0)
				cout << "-";
			else
				for (int j = 0; j < C[i]; j++)
					cout << "*";

			cout << "\n";
		}
	}

	return 0;

}