"use strict";
function Main(input) {
	let textNum = input.split('\n')[0]*1;
  	
  	// 両方とも後で配列の値を比較するために文字列化
  	let text1 = input.split('\n')[1].split(' ').map(i => i*1).toString();
    let text2 = input.split('\n')[2].split(' ').map(i => i*1).toString();
  	  	
  	// 1からの連番配列を生成 
	const dictionaryResorce = [...Array(textNum).keys()].map(i => ++i);
  
  	// 配列を比較したかったのでmapで各要素を文字列にしてる
  	const dictionary = makeOrder(dictionaryResorce).map(x => x.toString());
  	
  	// それぞれが何番目かを計算
  	const x1 = dictionary.indexOf(text1);
    const x2 = dictionary.indexOf(text2);
  
  	// 答えを出す
	let ans = Math.abs(x1 - x2); 
  	console.log(ans);
}
Main(require("fs").readFileSync("/dev/stdin", "utf8"));

//辞書網羅用のコード （https://gist.github.com/umezo/8582650）
function makeOrder( list ){
  //要素がなければ並び順は作れない
  if( list.length === 0 ){
    return null;
  }
  //再帰にありがちな固定return
  if( list.length === 1 ){
    return [ [ list[0] ] ];
  }
  let //生成された並び順を格納する配列
      result = [], 

      //一時変数 ループ中の先頭要素
      head,

      //一時変数 ループ内で破壊的にlistを弄りたいため
      cloneList;
  for( var i = 0 , n = list.length; i<n ; i++ ){

    //listをクローン
    cloneList = list.concat([]);

    //準々に先頭要素を交代していく
    head = cloneList.splice( i,1 );

    //先頭要素以外で全ての並び順を生成する (再帰)
    let remainList = makeOrder( cloneList );

    //生成されたルートに先頭要素を足す
    for( var j = 0 , m = remainList.length ; j<m ; j++ ){
      remainList[j].unshift( head[0] );
      result.push( remainList[j] );
    }   
  }

  return result;
}
