import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;
public class MusicDatabase
{
static int x=0;
static int y=0; // generic loopers

static String sname, aname, cdname;
static int time, track;

static int numberOfSongs=0;

public static void main(String args [] )
{
File songList = new File("songs.txt");

try 
   {
   BufferedReader songInput = new BufferedReader( new FileReader( songList ) );
   x = 0;
	while( songInput.ready() == true ) 
      {
		songInput.readLine();
		x++;
		} // end while
	System.out.println("Number of lines: " + x);
	numberOfSongs = x/5;
	System.out.println("Number of Songs: " + numberOfSongs);
	songInput.close();	
   }
catch (IOException e)
   {
   System.out.println("Bad filename ");
   System.exit(0);
   }

MusicRecord musicTable[] = new MusicRecord[ numberOfSongs ];
String sortedSongs[] = new String[ numberOfSongs ];
String sortedArtists[] = new String[ numberOfSongs ];

try
   {
	BufferedReader arrayInput = new BufferedReader(  new FileReader( songList ) );
   for (x=0; x<numberOfSongs; x++)
	   { 
      sname = arrayInput.readLine();
      aname = arrayInput.readLine();
      cdname = arrayInput.readLine(); 

      StringTokenizer tokenizer = new StringTokenizer(arrayInput.readLine());
      time = Integer.parseInt( tokenizer.nextToken() );
		track = Integer.parseInt( tokenizer.nextToken() );
		arrayInput.readLine(); // empty line
		
		musicTable[ x ] = new MusicRecord( sname, aname, cdname, time, track );
		
		sortedSongs[x] = sname;
		sortedArtists[x] = aname;
      } // end for
    arrayInput.close();
    } // end try
catch( IOException e)
    {
	 System.out.println("Bad File");
	 System.exit(0);
    }  // end catch 

    Arrays.sort( sortedSongs );
	 Arrays.sort( sortedArtists );

for(x=0; x<numberOfSongs; x++)
    {
    System.out.println( sortedSongs[x] );
    }
for(x=0; x<numberOfSongs; x++)
    {
    System.out.println( sortedArtists[x] );
    }

for( x=0; x<numberOfSongs; x++)
    {
    for (y=0; y<numberOfSongs; y++)
	    {
       if (sortedSongs[x].equals( musicTable[y].getSong() ) )
		    {
			 musicTable[y].setSongPlace( x );
          } // end if
       } // end y
    } // end x 
for( x=0; x<numberOfSongs; x++)
    {
    for (y=0; y<numberOfSongs; y++)
	    {
       if (sortedArtists[x].equals( musicTable[y].getArtist() ) )
		    {
			 musicTable[y].setArtistPlace( x );
          } // end if
       } // end y
    } // end x 

for( x=0; x<numberOfSongs; x++)
   {
	musicTable[x].printRecord();
	}	 
		 
} // end main
} // end class
