import java.io.*;
import java.util.*;
public class SSN
{
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter name: ");
String name = br.readLine();
String ssn = null;
String ssnTk1 = null;
String ssnTk2 = null;
while (true)
{
System.out.print("Enter SSN: ");
ssn = br.readLine();
StringTokenizer st = new StringTokenizer(ssn, "-");
int tkNum = st.countTokens();
if (tkNum < 2)
{
System.out.println("Invalid SSN: " + ssn + " Try again!");
}
else
{
ssnTk1 = st.nextToken();
ssnTk2 = ssnTk1 + "-" + st.nextToken();
break;
}
}
String state = ssnToState.get(ssnTk2);
if (state == null)
{
state = ssnToState.get(ssnTk1);
}
if (state != null)
{
System.out.println("Hello " + name + ". You were born in " + state);
}
else
{
System.out.println("Your Social Security Number: " + ssn + " Does not match any State!");
}
}
public static Map<String, String> ssnToState = new HashMap<String, String>();
static
{
addState("001-003", "NH");
addState("004-007", "ME");
addState("008-009", "VT");
addState("010-034", "MA");
addState("035-039", "RI");
addState("040-049", "CT");
addState("050-134", "NY");
addState("135-158", "NJ");
addState("159-211", "PA");
addState("212-220", "MD");
addState("221-222", "DE");
addState("223-231", "VA");
addState("232-236", "WV");
addState("237-246", "NC");
addState("247-251", "SC");
addState("252-260", "GA");
addState("261-267", "FL");
addState("268-302", "OH");
addState("303-317", "IN");
addState("318-361", "IL");
addState("362-386", "MI");
addState("387-399", "WI");
addState("400-407", "KY");
addState("408-415", "TN");
addState("416-424", "AL");
addState("425-428", "MS");
addState("29-432", "AR");
addState("433-439", "LA");
addState("440-448", "OK");
addState("449-467", "TX");
addState("468-477", "MN");
addState("478-485", "IA");
addState("486-500", "MO");
addState("501-502", "ND");
addState("503-504", "SD");
addState("505-508", "NE");
addState("509-515", "KS");
addState("516-517", "MT");
addState("518-519", "ID");
addState("520", "WY");
addState("521-524", "CO");
addState("525", "NM");
addState("526-527", "AZ");
addState("528-529", "UT");
addState("530", "NV");
addState("531-539", "WA");
addState("540-544", "OR");
addState("545-573", "CA");
addState("574", "AK");
addState("575-576", "HI");
addState("577-579", "DC");
addState("580", "VI, Virgin Islands");
addState("581-584", "PR Puerto Rico");
addState("585", "NM");
addState("586", "PI Pacific Islands*");
addState("587-588", "MS");
addState("589-595", "FL");
addState("596-599", "PR Puerto Rico");
addState("600-601", "AZ");
addState("602-626", "CA");
addState("627-645", "TX");
addState("646-647", "UT");
addState("648-649", "NM");
}
private static void addState(String ssn, String state)
{
ssnToState.put(ssn, state);
}
}