public int MyHash(String S) {		
		int num = Integer.parseInt( S.substring(1) );		
		return num % table.length;

	}
	
	
public int MyHash(String S) {
	int num = 0;
	
	for (int i = 0; i < S.length(); i++ )
	{
		num = 37*num + (int) S.charAt(i);
	}
	
	num = num % table.length;
	if (num < 0)  num += table.length;
	
	return num;

}


public int MyHash(String S) {		
		int num = Integer.parseInt( S.substring(1) );	
		
		double goldenRatio = 0.6180339887;
		double fractionalKey = num * goldenRatio 
		           - Math.floor(num * goldenRatio);
		num = (int) Math.floor( table.length * fractionalKey );
		
		return num;

	}


public int MyHash(String S) {		
		int num = 0;
		
		for (int i = 0; i < S.length(); i++ )
		{
			num += (int) S.charAt(i);
		}	
		
		double goldenRatio = 0.6180339887;
		double fractionalKey = num * goldenRatio 
		           - Math.floor(num * goldenRatio);
		num = (int) Math.floor( table.length * fractionalKey );
		
		return num;

	}
	
public int MyHash(String S) {		
		int num = 0;
		int primePow = 37;
		for (int i = 0; i < S.length(); i++ )
		{
			num +=  primePow * (int) S.charAt(i);
			primePow = primePow*37;
		}	
		
		double goldenRatio = 0.6180339887;
		double fractionalKey = num * goldenRatio 
		           - Math.floor(num * goldenRatio);
		num = (int) Math.floor( table.length * fractionalKey );
		
		return num;
	}
