awk -F: ' BEGIN {
m1[1]="un"
m1[2]="dos"
m1[3]="tres"
m1[4]="cuatro"
m1[5]="cinco"
m1[6]="seis"
m1[7]="siete"
m1[8]="ocho"
m1[9]="nueve"
m1[10]="diez"
m1[11]="once"
m1[12]="doce"
m1[13]="trece"
m1[14]="catorce"
m1[15]="quince"
m2[1]="dieci"
m2[2]="veinte"
m2[3]="treinta"
m2[4]="cuarenta"
m2[5]="cincuenta"
m2[6]="sesenta"
m2[7]="setenta"
m2[8]="ochenta"
m2[9]="noventa"
}
function mon (value)
{
	v0=sprintf ("%9.0f",value)
	v1=substr(v0,1,3)+0
	v2=substr(v0,4,3)+0
	v3=substr(v0,7,3)+0
	z=""
	if (v1)
	{
		if (v1>1) z=mon1(v1)" millones "
		else z="un millon "
	}
	if (v2)
	{
		if (v2>1) z=z""mon1(v2)" mil "
		else z=z"mil "
	}
	if (v3) z=z""mon1(v3)
	z=z" pesos"
	return z
}
function mon1 (mont)
{
	monto=sprintf ("%3d",mont)
	x1=substr(monto,1,1)+0
	x2=substr(monto,2,1)+0
	x3=substr(monto,3,1)+0
	zz=""
	if(x1) 
	{
		p2=m1[x1]
		if (x1==2) p2="do"
		if (x1==3) p2="tre"
		if (x1==7) p2="sete"
		if (x1==9) p2="nove"
		if (x1==1)
		{
			 if (x3+x2) zz="ciento "
			else zz="cien "
		}
		else zz=p2"cientos "
		if (x1==5) zz="quinientos "
	}
	p1=x2*10+x3
	if (p1<16) zz=zz""m1[p1]
	else
	{
		if (p1<20) zz=zz""m2[x2]""m1[x3]" "
		else
		{
			if (p1>19 && !x3)  zz=zz""m2[x2]" "
			if (p1>20 && p1<30)  zz=zz"veinti"
			if (p1>29 && x3)  zz=zz""m2[x2]" y "
			zz=zz""m1[x3]
		}
	}
	return zz
} 
{
print $1
print mon($1)
} ' 
