Go: package main

import (
	"bufio"
	"fmt"
	"os"
	"strconv"
	"strings"
)

var scanner = bufio.NewScanner(os.Stdin)

func nextString() string {
	scanner.Scan()
	return scanner.Text()
}

func nextInt() int {
	n, err := strconv.Atoi(nextString())
	if err != nil {
		fmt.Printf("strconv.Atoi failed: %v\n", err)
	}
	return n
}

func main() {
	scanner.Split(bufio.ScanWords)

	w := nextInt()
	n := nextInt()

	numbers := make([]int, w+1)
	for i := 1; i <= w; i++ {
		numbers[i] = i
	}

	for i := 0; i < n; i++ {
		line := nextString()
		words := strings.Split(line, ",")
		a, _ := strconv.Atoi(words[0])
		b, _ := strconv.Atoi(words[1])

		numbers[a], numbers[b] = numbers[b], numbers[a]
	}

	for i := 1; i <= w; i++ {
		fmt.Println(numbers[i])
	}
}

C++: #include <bits/stdc++.h>

using namespace std;
using ll = long long;
using pii = pair<int, int>;

int main() {
  cin.tie(0);
  ios_base::sync_with_stdio(false);
  cout << fixed << setprecision(10);
  
  int w, n;
  cin >> w >> n;

  int p[30];
  iota(p, p + w, 0);
  for (int i = 0; i < n; i++) {
    int a, b;
    char c;
    cin >> a >> c >> b;
    swap(p[a - 1], p[b - 1]);
  }
  for (int i = 0; i < w; i++) {
    cout << p[i] + 1 << endl;
  }

  return 0;
}

C++: #include<iostream>
#include<string.h>
#include<stdlib.h>
using namespace std;
int main()
{
    int A[50];
   string s;
   int w,n;
    A[0]=0;
   while(cin>>w>>n)
   {
        for(int i=1;i<=w;i++)
       {
           A[i]=i;
       }
       while(n--)
       {

       cin>>s;
       int len=s.length();
       int d=s.find(',',0);
       string a=s.substr(0,d);
       string b=s.substr(d+1,len-1);
       int c=atoi(a.c_str());
       int e=atoi(b.c_str());
      // cout<<a<<endl<<b<<endl<<c<<endl<<e<<endl;
         int h= A[c];
         A[c]=A[e];
         A[e]=h;

       }
for(int i=1;i<=w;i++)
      cout<<A[i]<<endl;
   }
}

C++: #include<stdio.h>
int main()
{
  int n,m,i;
  int line[101];
  int a,b;
  scanf("%d",&n);

  for(i = 1;i <= n;i++)line[i] = i;

  scanf("%d",&m);

  for(i = 0;i < m;i++){
    scanf(" %d %d",&a,&b);
    int temp = line[a];
    line[a] = line[b];
    line[b] = temp;
  }
  
  for(i = 1;i <= n;i++)printf("%d ",line[i]);
  printf("\n");
}

C++: #include<iostream>

using namespace std;

typedef struct B{
	int a;
	int b;
}Link;

int main()
{
	int StrLen, LinkNum;
	int EndNum[50] = {0};
	Link link[50];
	cin >> StrLen >> LinkNum;
	for (int i = 0; i < LinkNum; i++)
		scanf("%d,%d", &link[i].a, &link[i].b);
	for (int i = 1; i <= StrLen; i++)
	{
		int posi = i;
		for (int j = 0; j < LinkNum; j++)
		{			
			if (link[j].a == posi)
				posi = link[j].b;
			else if (link[j].b == posi)
				posi = link[j].a;				
		}
		EndNum[posi-1] = i;
	}
	for (int i = 0; i < StrLen; i++)
		cout << EndNum[i] << endl;

	return 0;
}

C++: #include<iostream>

using namespace std;
 
int main(){
    int W,N;
    int w[30];
 
    cin >> W >> N;

    for(int i=0;i<W;i++)
    w[i] = i+1;
 
    int a, b, dm;
    for(int i=0;i<N;i++) {
    	
        cin >> a >> b; 
        
        dm = w[a-1];
        w[a-1] = w[b-1];
        w[b-1] = dm;
        
        }
 
        for(int i=0;i<W;i++)
            cout << w[i] << "\n"; 
 
        return 0;
}

C++: #include <iostream>
#include <sstream>
#include <cmath>
#include <algorithm>
using namespace std;

int main()
{
	int w,n;
	scanf("%d",&w);
	scanf("%d",&n);
	int *lot = new int[w+1];
	for(int i=0;i<=w;i++){
		lot[i] = i;
	}
	for(int i=0;i<n;i++){

		string str1,str2;
		int a,b;
		getline(cin,str1,',');
		getline(cin,str2);
		sscanf(str1.c_str(),"%d",&a);
		sscanf(str2.c_str(),"%d",&b);
		swap(lot[a],lot[b]);
	}

	for(int i=1;i<=w;i++){
		printf("%d\n",lot[i]);
	}
}

C++: include <bits/stdc++.h>
using namespace std;

int main() {
	int w,n;
	scanf("%d %d",&w,&n);
	int a[n];
	int b[n];
	for(int i=0;i<n;i++){
		scanf("%d,%d",&a[i],&b[i]);
	}
	int ans[w+1];
	for(int i=1;i<=w;i++)ans[i]=i;
	int temp;
	for(int i=0;i<n;i++){
		temp=ans[a[i]];
		ans[a[i]]=ans[b[i]];
		ans[b[i]]=temp;
	}
	for(int i=1;i<=w;i++){
		cout<<ans[i]<<endl;
	}
	return 0;
}

C++: #include<iostream>
#include<cstdio>
using namespace std;

int main(){
  int W,n;
  cin>>W;
  int num[W+1];
  for(int i=1;i<=W;i++){
    num[i]=i;
  }
  cin>>n;
  int change1=0,change2=0;
  int alt=0;
  for(int i=0;i<n;i++){
    scanf("%d,%d",&change1,&change2);
    alt=num[change1];
    num[change1]=num[change2];
    num[change2]=alt;
  }
  for(int i=1;i<W+1;i++){
    cout<<num[i]<<endl;
  }
  return 0;
}

C++: /*Filename: aoj0011.cpp
 *Author: Mushiyo
 */

#include <iostream>
#include <stdio.h>

using namespace std;

int main(){
	int w = 0;

    while(cin >> w){
    	int num[w + 1];
    	for(int i = 1; i <= w; ++i){
    		num[i] = i;
    	}

        int n = 0;
        cin >> n;

        while(n > 0){
        	int a = 0, b = 0;
        	scanf("%d, %d", &a, &b);

        	int tmp = num[a];
        	num[a] = num[b];
        	num[b] = tmp;

        	--n;
        }
        
        for(int i = 1; i <= w; ++i){
        	cout << num[i] << endl;
        }
    }

	return 0;
}

C++: #include <iostream>

using namespace std;

int cell[31];

int main() {
    int w, n, a, b;

    for (int i = 1; i <= 30; i++) {
        cell[i] = i;
    }

    cin >> w >> n;

    while (n--) {
        int a, b;
        scanf("%d,%d", &a, &b);
        swap(cell[a], cell[b]);
    }

    for (int i = 1; i <= w; i++) {
        cout << cell[i] << endl;
    }

    return 0;
}

C++: #include <stdio.h>
#define MAX 30

int main(void){
    int w,n, tmp;
    int a,b;
    int lot[MAX+1]; // 1-origin

    scanf("%d", &w);
    scanf("%d", &n);
    for (int i=1; i<=w; i++) lot[i] = i;
    for (int i=1; i<=n; i++){
        scanf("%d,%d", &a, &b);
        tmp = lot[a];
        lot[a] = lot[b];
        lot[b] = tmp;
    }
    for (int i=1; i<=w; i++){
        printf("%d\n", lot[i]);
    }

    return 0;
}

C++: #include <bits/stdc++.h>
using namespace std;

int main(){
	
	int d[31];
	for(int i=1;i<=30;i++)d[i]=i;
	int w,n;
	cin>>w>>n;
	while(n--){
		int a,b;
		scanf("%d,%d",&a,&b);
		swap(d[a],d[b]);
	}
	for(int i=1;i<=w;i++)cout<<d[i]<<endl;;
	
	return 0;
}

C++: #include <iostream>
int main(){
int w,n,b[30],a,c,d,i,f,h;
char g;
std::cin>>w>>n;
for(a=1;a<=w;++a){
    b[a]=a;
    }
for(i=0;i<n;++i){
      std::cin>>c>>g>>d;
       f=b[c];
      b[c]=b[d];
     b[d]=f;
}
for(h=1;h<=w;++h){
  std::cout<<b[h]<<std::endl;
  }
return 0;
}

C++: #include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
#include <cmath>

using namespace std;

int main()
{
	int w, n;
	int g[31];
	scanf("%d %d", &w, &n);
	for (int i = 1; i <= w; ++i)
		g[i] = i;
	for (int i = 0; i < n; ++i)
	{
		int a, b;
		scanf("%d,%d", &a, &b);
		swap(g[a], g[b]);
	}
	for (int i = 1; i <= w; ++i)
		printf("%d\n", g[i]);

	return 0;
}

C++: #include <iostream>
#include <cstdio>
#define W 30

int lot[W];

void init_lots(int w) {
    for (int i=1; i<=w; i++) lot[i] = i;
}

int main() {
    int w, n;
    int a, b, tmp;
    std::cin >> w;
    std::cin >> n;
    init_lots(w);
    for (int i=0; i<n; i++) {
        scanf("%d,%d", &a, &b);
        tmp = lot[a];
        lot[a] = lot[b];
        lot[b] = tmp;
    }
    for (int i=1; i<=w; i++) std::cout << lot[i] << std::endl;
    return 0;
}

C++: #include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<iostream>
#include<string>
using namespace std;

void swap(int* a, int* b) {

	int work;

	work = *a;
	*a = *b;
	*b = work;
}

int main() {

	int w, n;
	cin >> w;
	cin >> n;

	int a[30];
	for (int i = 0; i < 30; i++)a[i] = i + 1;
	int x, y;
	char c;
	for (int i = 0; i < n; i++) {
		cin >> x >> c >> y;

		swap(&a[x - 1], &a[y - 1]);
	}

	for (int i = 0; i < w; i++) {
		printf("%d\n", a[i]);
	}

	//system("pause");
	return 0;
}