public ArrayList<Value> getLPS(String s)
	{	 
		String t = preProcess(s);
		int P[] =  new int[t.length()];
		P[0] = 0;
		int C=0,R =0;
		int maxLen =0;
		for(int i=1;i<t.length()-1;i++)
		{
			if(R>i){
				int j = 2*C-i;
				P[i] =  P[j] > R-i? R-i:P[j];
			}
			else P[i] =0;
		 
			while(t.charAt(i+P[i]+1)==t.charAt(i-P[i]-1)) P[i]++;
		 
		 
			if(i+P[i]>R)
			{
				C = i;
				R = i+ P[i];
			}
			
			if(P[i]>maxLen){
				maxLen = P[i];
			}
		}
 		ArrayList<Value> rt = new ArrayList<Value>();
		for(int i=1;i<t.length()-1;i++)
		{
			if(P[i]==maxLen){
			   Value temp = new Value();
			   temp.maxLen = maxLen;
			   temp.max = (i - maxLen-1)/2;
			   rt.add(temp);
			}
		}
		 
	 
		return rt;
	}