#include <bits/stdc++.h>
using namespace std;
const int maxed = 50000 + 10;
vector<int> ve[maxed];
int n, r1, r2, answer[maxed];
bool vis[maxed];
int main() {
  void slove(int);
  scanf("%d%d%d", &n, &r1, &r2);
  int ans = 1, a;
  for (int i = 1; i <= n - 1; i++) {
    scanf("%d", &a);
    if (ans == r1) ans++;
    ve[ans].push_back(a);
    ve[a].push_back(ans);
    ans++;
  }
  slove(r2);
  bool flag = false;
  for (int i = 1; i <= n; i++) {
    if (i == r2) continue;
    if (!flag) {
      printf("%d", answer[i]);
      flag = true;
    } else
      printf(" %d", answer[i]);
  }
  return 0;
}
void slove(int x) {
  int len = ve[x].size();
  for (int i = 0; i < len; i++)
    if (!vis[ve[x][i]]) {
      vis[ve[x][i]] = true;
      answer[ve[x][i]] = x;
      slove(ve[x][i]);
    }
}
