A string s of length n can be encrypted by the following algorithm:

  * iterate over all divisors of n in decreasing order (i.e. from n to 1), 
  * for each divisor d, reverse the substring s[1 ... d] (i.e. the substring which starts at position 1 and ends at position d). 



For example, the above algorithm applied to the string s="codeforces" leads to the following changes: "codeforces" → "secrofedoc" → "orcesfedoc" → "rocesfedoc" → "rocesfedoc" (obviously, the last reverse operation doesn't change the string because d=1).

You are given the encrypted string t. Your task is to decrypt this string, i.e., to find a string s such that the above algorithm results in string t. It can be proven that this string s always exists and is unique.

Input

The first line of input consists of a single integer n (1 ≤ n ≤ 100) — the length of the string t. The second line of input consists of the string t. The length of t is n, and it consists only of lowercase Latin letters.

Output

Print a string s such that the above algorithm results in t.

Examples

Input

10
rocesfedoc


Output

codeforces


Input

16
plmaetwoxesisiht


Output

thisisexampletwo


Input

1
z


Output

z

Note

The first example is described in the problem statement.


import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.HashSet;
import java.util.InputMismatchException;
import java.util.Iterator;
import java.util.Vector;





public class con68 {
	

	
	
	public static void main(String[] args) throws IOException 
	{
int n=i();
String s=s();
String ne=s;
for(int y=1;y<=n;y++)
{
	if(n%y==0)
	{
		
	String d=	ne.substring(0,y);
	String h=ne.substring(y);
	//out.println(d);
	//out.println(h);
	String e="";
	for(int hw=0;hw<d.length();hw++)
	{
		e=d.charAt(hw)+e;
	}
	ne=""+e+h;
	//out.println(ne);
	//out.println("dddddddddddddddddd");
	}
	
}
out.println(ne);
	out.close();
	}
	 
	
	  
	 static InputReader in = new InputReader(System.in);
	    static OutputWriter out = new OutputWriter(System.out);
	    
	    static int i()
	    {
	    	return in.readInt();
	    }
	    
	    static long l()
	    {
	    	return in.readLong();
	    }
	    
	    static double d()
	    {
	    	return in.readDouble();
	    }
	    
	    static String s()
	    {
	    	return in.readString();
	    }
	    
	    static void Iarr( int[] array, int no )
	    {
	    	for( int i=0 ; i<no ; i++ )
	    	{
	    		array[i] = i(); 
	    	}
	    }
	    
	    static void Larr( long[] array, int no )
	    {
	    	for( int i=0 ; i<no ; i++ )
	    	{
	    		array[i] = l(); 
	    	}
	    }
	    
	    static void Darr( double[] array, int no )
	    {
	    	for( int i=0 ; i<no ; i++ )
	    	{
	    		array[i] = d(); 
	    	}
	    }
	    
	    static void Sarr( String[] array, int no )
	    {
	    	for( int i=0 ; i<no ; i++ )
	    	{
	    		array[i] = s(); 
	    	}
	    }
	    
	    private static class InputReader
	    {
	        private InputStream stream;
	        private byte[] buf = new byte[1024];
	        private int curChar;
	        private int numChars;
	        private SpaceCharFilter filter;
	 
	        public InputReader(InputStream stream)
	        {
	            this.stream = stream;
	        }
	 
	        
	        
	        
	        
	        
	        
	        public int read()
	        {
	            if (numChars == -1)
	                throw new InputMismatchException();
	            if (curChar >= numChars)
	            {
	                curChar = 0;
	                try
	                {
	                    numChars = stream.read(buf);
	                } catch (IOException e)
	                {
	                    throw new InputMismatchException();
	                }
	                if (numChars <= 0)
	                    return -1;
	            }
	            return buf[curChar++];
	        }
	 
	        public int readInt()
	        {
	            int c = read();
	            while (isSpaceChar(c))
	                c = read();
	            int sgn = 1;
	            if (c == '-')
	            {
	                sgn = -1;
	                c = read();
	            }
	            int res = 0;
	            do
	            {
	                if (c < '0' || c > '9')
	                    throw new InputMismatchException();
	                res *= 10;
	                res += c - '0';
	                c = read();
	            } while (!isSpaceChar(c));
	            return res * sgn;
	        }
	 
	        public String readString()
	        {
	            int c = read();
	            while (isSpaceChar(c))
	                c = read();
	            StringBuilder res = new StringBuilder();
	            do
	            {
	                res.appendCodePoint(c);
	                c = read();
	            } while (!isSpaceChar(c));
	            return res.toString();
	        }
	        public double readDouble() {
	            int c = read();
	            while (isSpaceChar(c))
	                c = read();
	            int sgn = 1;
	            if (c == '-') {
	                sgn = -1;
	                c = read();
	            }
	            double res = 0;
	            while (!isSpaceChar(c) && c != '.') {
	                if (c == 'e' || c == 'E')
	                    return res * Math.pow(10, readInt());
	                if (c < '0' || c > '9')
	                    throw new InputMismatchException();
	                res *= 10;
	                res += c - '0';
	                c = read();
	            }
	            if (c == '.') {
	                c = read();
	                double m = 1;
	                while (!isSpaceChar(c)) {
	                    if (c == 'e' || c == 'E')
	                        return res * Math.pow(10, readInt());
	                    if (c < '0' || c > '9')
	                        throw new InputMismatchException();
	                    m /= 10;
	                    res += (c - '0') * m;
	                    c = read();
	                }
	            }
	            return res * sgn;
	        }
	        public long readLong() {
	            int c = read();
	            while (isSpaceChar(c))
	                c = read();
	            int sgn = 1;
	            if (c == '-') {
	                sgn = -1;
	                c = read();
	            }
	            long res = 0;
	            do {
	                if (c < '0' || c > '9')
	                    throw new InputMismatchException();
	                res *= 10;
	                res += c - '0';
	                c = read();
	            } while (!isSpaceChar(c));
	            return res * sgn;
	        }
	        public boolean isSpaceChar(int c)
	        {
	            if (filter != null)
	                return filter.isSpaceChar(c);
	            return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
	        }
	 
	        public String next()
	        {
	            return readString();
	        }
	 
	        public interface SpaceCharFilter
	        {
	            public boolean isSpaceChar(int ch);
	        }
	    }
	 
	    private static class OutputWriter
	    {
	        private final PrintWriter writer;
	 
	        public OutputWriter(OutputStream outputStream)
	        {
	            writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(outputStream)));
	        }
	 
	        public OutputWriter(Writer writer)
	        {
	            this.writer = new PrintWriter(writer);
	        }
	 
	        public void print(Object... objects)
	        {
	            for (int i = 0; i < objects.length; i++)
	            {
	                if (i != 0)
	                    writer.print(' ');
	                writer.print(objects[i]);
	            }
	        }
	 
	        public void println(Object... objects)
	        {
	            print(objects);
	            writer.println();
	        }
	 
	        public void close()
	        {
	            writer.close();
	        }
	 
	        public void flush()
	        {
	            writer.flush();
	        }
	     }
	
	 
}
