1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <iostream>
#include <vector>
#include <set>
#include <algorithm>
long n,m,a,b;


int main() {
    std::ios_base::sync_with_stdio(0);
    std::cin.tie(NULL);
    std::cin>>n;

    std::vector<std::pair<char,std::pair<int,int>>> res[2];
    for(int obr=0;obr<2;obr++){
        std::cin>>m;
        std::vector<std::vector<int> >sa;
        std::vector<int>prze;
        std::vector<int>odw;
        sa.resize(n+1);
        odw.resize(n+1,0);
        for(int i=0;i<m;i++){
            std::cin>>a>>b;
            sa[a].emplace_back(b);
            sa[b].emplace_back(a);
        }
        odw[1]=1;
        prze.emplace_back(1);
        int i=0;
        while(i<prze.size()){
            for(auto x:sa[prze[i]])
                if(odw[x]!=1){
                    prze.emplace_back(x);
                    odw[x]=1;
                    if(i!=0)
                    res[obr].push_back(std::make_pair('+',std::make_pair(1,x)));
                    }
            i++;
        }
        for(int i=2;i<=n;i++){
            for(auto x:sa[i])
                if(i<x)
                    res[obr].push_back(std::make_pair('-',std::make_pair(i,x)));
        }
    }
    std::cout<<res[0].size()+res[1].size()<<"\n";
    for(int i=0;i<res[0].size();i++){
        std::cout<<res[0][i].first<<" "<<res[0][i].second.first<<" "<<res[0][i].second.second<<"\n";
    }

    std::reverse(res[1].begin(),res[1].end());
    for(int i=0;i<res[1].size();i++)
    std::cout<<(res[1][i].first=='+'?'-':'+')<<" "<<res[1][i].second.first<<" "<<res[1][i].second.second<<"\n";


}