링크
import java.util.Deque;
import java.util.LinkedList;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.util.StringTokenizer;
public class Main
{
public static void main(String[] args) throws IOException{
Deque<Integer> queue = new LinkedList<>();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int range = Integer.parseInt(st.nextToken());
int findNumbers = Integer.parseInt(st.nextToken());
initDeque(queue, range);
int answer =0;
st = new StringTokenizer(br.readLine());
for(int i=0; i<findNumbers; i++){
int number = Integer.parseInt(st.nextToken());
if(queue.peek() == number) {
queue.pop();
continue;
}
int count = moveCount(queue, number, queue.size()/2);
answer += count;
}
br.close();
System.out.println(answer);
}
public static int moveCount(Deque<Integer> queue, int number, int mid){
int index = findIndex(queue, number);
if(index<=mid+1){
return moveRight(queue, number);
}else{
return moveleft(queue, number);
}
}
public static int findIndex(Deque<Integer> queue, int number){
int count = 0;
Deque<Integer> tempQ = new LinkedList<>(queue);
while(true){
int now = tempQ.poll();
count++;
if(now == number) break;
}
return count;
}
public static int moveRight(Deque<Integer> queue, int number){
int count =0;
while(true){
int now = queue.poll();
if(now == number) break;
queue.offer(now);
count++;
}
return count;
}
public static int moveleft(Deque<Integer> queue, int number){
int count = 0;
while(true){
int now = queue.pollLast();
count++;
if(now == number) break;
queue.offerFirst(now);
}
return count;
}
public static void initDeque(Deque<Integer> queue, int range){
for(int i=1; i<=range;i++){
queue.add(i);
}
}
}