Vasya has got n books, numbered from 1 to n, arranged in a stack. The topmost book has number a_1, the next one — a_2, and so on. The book at the bottom of the stack has number a_n. All numbers are distinct.

Vasya wants to move all the books to his backpack in n steps. During i-th step he wants to move the book number b_i into his backpack. If the book with number b_i is in the stack, he takes this book and all the books above the book b_i, and puts them into the backpack; otherwise he does nothing and begins the next step. For example, if books are arranged in the order [1, 2, 3] (book 1 is the topmost), and Vasya moves the books in the order [2, 1, 3], then during the first step he will move two books (1 and 2), during the second step he will do nothing (since book 1 is already in the backpack), and during the third step — one book (the book number 3). Note that b_1, b_2, ..., b_n are distinct.

Help Vasya! Tell him the number of books he will put into his backpack during each step.

Input

The first line contains one integer n~(1 ≤ n ≤ 2 ⋅ 10^5) — the number of books in the stack.

The second line contains n integers a_1, a_2, ..., a_n~(1 ≤ a_i ≤ n) denoting the stack of books.

The third line contains n integers b_1, b_2, ..., b_n~(1 ≤ b_i ≤ n) denoting the steps Vasya is going to perform.

All numbers a_1 ... a_n are distinct, the same goes for b_1 ... b_n.

Output

Print n integers. The i-th of them should be equal to the number of books Vasya moves to his backpack during the i-th step.

Examples

Input

3
1 2 3
2 1 3


Output

2 0 1 


Input

5
3 1 4 2 5
4 5 1 3 2


Output

3 2 0 0 0 


Input

6
6 5 4 3 2 1
6 5 3 4 2 1


Output

1 1 2 0 1 1 

Note

The first example is described in the statement.

In the second example, during the first step Vasya will move the books [3, 1, 4]. After that only books 2 and 5 remain in the stack (2 is above 5). During the second step Vasya will take the books 2 and 5. After that the stack becomes empty, so during next steps Vasya won't move any books.
		////////////////////////////////////////////////////
		//                                                //
		//  For her who keeps the fire kindling in me...  //
		//                                                //
		////////////////////////////////////////////////////

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader;
import java.util.Scanner; 
import java.util.StringTokenizer;

public class SubStr{

	public static void main(String args[]){
		FastReader s = new FastReader();
		int n, i, j, prevind, l, prevl, count;
		n = s.nextInt();
		int arra[] = new int[n];
		int arrb[] = new int[n];
		int arr[] = new int[200001];
		for(i=0; i<n; i++)
			arra[i] = s.nextInt();
		for(i=0; i<n; i++)
			arrb[i] = s.nextInt();

		l=0; count =0; prevind = -1;
		for(i=0; i<n; ){
			if(arr[arrb[i]] == 0){
				if(l!=0)
					arr[arra[l-1]]++;
				if(arrb[i] == arra[l]){
					count = l-prevind;
					prevind = l;
					if(i!=(n-1))
						System.out.print(count+" ");
					else
						System.out.println(count);
					i++;
					l++;
				}
				else{
					l++;
				}
			}
			else{
				if(i!=(n-1))
					System.out.print(0+" ");
				else
					System.out.println(""+0);
				i++;
			}
		}
	}

      //========================================### FAST IO ###=========================================//
            static class FastReader 
        { 
            BufferedReader br; 
            StringTokenizer st; 
      
            public FastReader() 
            { 
                br = new BufferedReader(new
                         InputStreamReader(System.in)); 
            } 
      
            String next() 
            { 
                while (st == null || !st.hasMoreElements()) 
                { 
                    try
                    { 
                        st = new StringTokenizer(br.readLine()); 
                    } 
                    catch (IOException  e) 
                    { 
                        e.printStackTrace(); 
                    } 
                } 
                return st.nextToken(); 
            } 
      
            int nextInt() 
            { 
                return Integer.parseInt(next()); 
            } 
      
            long nextLong() 
            { 
                return Long.parseLong(next()); 
            } 
      
            double nextDouble() 
            { 
                return Double.parseDouble(next()); 
            } 
      
            String nextLine() 
            { 
                String str = ""; 
                try
                { 
                    str = br.readLine(); 
                } 
                catch (IOException e) 
                { 
                    e.printStackTrace(); 
                } 
                return str; 
            } 
        }
        //====================================================================================================//
}