#include <iostream>
using namespace std;

int main() {
    int n;
    cin >> n;
    
    int arr[20];
    for (int i = 0; i < n; i++) {
        cin >> arr[i];
    }
    
    int a, b, c, d;
    cin >> a >> b >> c >> d;
    
    // 调整为0-based索引
    a--; b--; c--; d--;
    
    // 计算段长度
    int len = b - a + 1;
    
    // 创建临时数组存储第一段
    int temp[20];
    for (int i = 0; i < len; i++) {
        temp[i] = arr[a + i];
    }
    
    // 将第二段复制到第一段位置
    for (int i = 0; i < len; i++) {
        arr[a + i] = arr[c + i];
    }
    
    // 将临时存储的第一段复制到第二段位置
    for (int i = 0; i < len; i++) {
        arr[c + i] = temp[i];
    }
    
    // 输出结果
    for (int i = 0; i < n; i++) {
        cout << arr[i];
        if (i < n - 1) cout << " ";
    }
    cout << endl;
    
    return 0;
}
/**************************************************************
	Problem: 1171
	User: fandaohan
	Language: C++
	Result: Accepted
	Time:9 ms
	Memory:2072 kb
****************************************************************/