/* Updated 2009-11-04 */
/* v2.2.0.24 */
/* DefRef Styles */
..report table.authRefData{
background-color: #def;
border: 2px solid #2F4497;
font-size: 1em;
position: absolute;
}
..report table.authRefData a {
display: block;
font-weight: bold;
}
..report table.authRefData p {
margin-top: 0px;
}
..report table.authRefData .hide {
background-color: #2F4497;
padding: 1px 3px 0px 0px;
text-align: right;
}
..report table.authRefData .hide a:hover {
background-color: #2F4497;
}
..report table.authRefData .body {
height: 150px;
overflow: auto;
width: 400px;
}
..report table.authRefData table{
font-size: 1em;
}
/* Report Styles */
..pl a, .pl a:visited {
color: black;
text-decoration: none;
}
/* table */
..report {
background-color: white;
border: 2px solid #acf;
clear: both;
color: black;
font: normal 8pt Helvetica, Arial, san-serif;
margin-bottom: 2em;
}
..report hr {
border: 1px solid #acf;
}
/* Top labels */
..report th {
background-color: #acf;
color: black;
font-weight: bold;
text-align: center;
}
..report th.void {
background-color: transparent;
color: #000000;
font: bold 10pt Helvetica, Arial, san-serif;
text-align: left;
}
..report .pl {
text-align: left;
vertical-align: top;
white-space: normal;
width: 200px;
white-space: normal; /* word-wrap: break-word; */
}
..report td.pl a.a {
cursor: pointer;
display: block;
width: 200px;
overflow: hidden;
}
..report td.pl div.a {
width: 200px;
}
..report td.pl a:hover {
background-color: #ffc;
}
/* Header rows... */
..report tr.rh {
background-color: #acf;
color: black;
font-weight: bold;
}
/* Calendars... */
..report .rc {
background-color: #f0f0f0;
}
/* Even rows... */
..report .re, .report .reu {
background-color: #def;
}
..report .reu td {
border-bottom: 1px solid black;
}
/* Odd rows... */
..report .ro, .report .rou {
background-color: white;
}
..report .rou td {
border-bottom: 1px solid black;
}
..report .rou table td, .report .reu table td {
border-bottom: 0px solid black;
}
/* styles for footnote marker */
..report .fn {
white-space: nowrap;
}
/* styles for numeric types */
..report .num, .report .nump {
text-align: right;
white-space: nowrap;
}
..report .nump {
padding-left: 2em;
}
..report .nump {
padding: 0px 0.4em 0px 2em;
}
/* styles for text types */
..report .text {
text-align: left;
white-space: normal;
}
..report .text .big {
margin-bottom: 1em;
width: 17em;
}
..report .text .more {
display: none;
}
..report .text .note {
font-style: italic;
font-weight: bold;
}
..report .text .small {
width: 10em;
}
..report sup {
font-style: italic;
}
..report .outerFootnotes {
font-size: 1em;
}